Size: a a a

pgsql – PostgreSQL

2020 June 24

VH

Vladimir Holyavik in pgsql – PostgreSQL
Глюконогий ROBO3T но лучше пока нет
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
JetBrains пока до монго не дошли )
источник

М

Максим in pgsql – PostgreSQL
Роман Жарков
Чтобы ответить на этот вопрос нужно учиться. А хочется простых ответов и быстро.
Я учусь, это и есть задача, которую я пытаюсь решить
источник

М

Максим in pgsql – PostgreSQL
Как тогда прописать, если значение из таблицы, равно этому значению, то присоединить ту таблицу с этим параметром, если нет, то ту жетаблицу но с другим параметром
источник

V

Valery in pgsql – PostgreSQL
Через if и подзапросы
источник

М

Максим in pgsql – PostgreSQL
А как if реализовать в запросе
источник

SZ

Sergey Zhuravlev in pgsql – PostgreSQL
Максим
А как if реализовать в запросе
юзать case
Выражение CASE в SQL представляет собой общее условное выражение, напоминающее операторы if/else в других языках программирования
источник

МН

Михаил Н. in pgsql – PostgreSQL
Максим
Как тогда прописать, если значение из таблицы, равно этому значению, то присоединить ту таблицу с этим параметром, если нет, то ту жетаблицу но с другим параметром
ну ежели тебе именно case хочется пользовать, то так:

Select * from lyudi l
Inner join perespal p on l.chel_id = case when l.sex='m' then p.chel_from_id else p.chel_to_id end
Where l.name = 'Линда'

только тебя засудят за ущемление некоторых меньшинств в ряде стран 😊
источник

М

Максим in pgsql – PostgreSQL
Неплохо, надо проверить
источник

М

Максим in pgsql – PostgreSQL
Вернее разобраться
источник

s

sexst in pgsql – PostgreSQL
Максим
Как тогда прописать, если значение из таблицы, равно этому значению, то присоединить ту таблицу с этим параметром, если нет, то ту жетаблицу но с другим параметром
Как вариант с отсечкой такого же пола через exists.

Select *
from lyudi l
Inner join perespal p on l.chel_id = p.chel_id
Where l.name = 'Линда' and exists (select  partners.chel_id from lyudi partners where partners.chel_id = p.partner_id and partners.sex != l.sex)

Можно второй раз с luydi сджойнить по partner_id = luydi.chel_id и во where пол отфильтровать.

Можно подзапрос сделать при помощи with.

Другой момент в том, что если у вас такая ситуация с одним полом является некорректной, то её нужно бы ещё на этапе записи проверять и запрещать.

А case немного для другого, типа:
SELECT id, name, CASE sex WHEN 'Male' THEN 'Не, это же мужик!' WHEN 'Female' THEN 'А вот это другое дело!' ELSE 'Это что ещё за хрень?' END verdict FROM luydi
источник

s

sexst in pgsql – PostgreSQL
Или более каноничное
SELECT * FROM test;

a
---
1
2
3


SELECT a,
      CASE WHEN a=1 THEN 'one'
           WHEN a=2 THEN 'two'
           ELSE 'other'
      END
   FROM test;

a | case
---+-------
1 | one
2 | two
3 | other
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
Тогда уж case a when 1 then .. when 2 then .. else.. end
источник

s

sexst in pgsql – PostgreSQL
Vladimir Holyavik
Тогда уж case a when 1 then .. when 2 then .. else.. end
Ну можно и так, я просто из документации скопипастил каноничный наглядный пример.
источник

s

sexst in pgsql – PostgreSQL
Ну в любом случае такие запросы как выше делать при помощи case - такое себе занятие. Там же даже неопытным взглядом видно как join просится
источник

М

Максим in pgsql – PostgreSQL
Я программист, а это декларативный язык
источник

М

Максим in pgsql – PostgreSQL
Где-нибудь понятно было описано каждое ключевое слово с синтаксисом
источник

М

Максим in pgsql – PostgreSQL
С понятным синтаксисом
источник

VH

Vladimir Holyavik in pgsql – PostgreSQL
Вспоминается дока под ORACLE )
источник

М

Максим in pgsql – PostgreSQL
Я использую postgresql
источник