CASE после JOIN LEFT в SQL - PullRequest
       14

CASE после JOIN LEFT в SQL

0 голосов
/ 26 июня 2018

У меня проблемы с запросом SQL. У меня есть две таблицы и я успешно создал запрос для отображения необходимой информации с помощью команды LEFT JOIN. Теперь я хочу отредактировать результат таким образом, чтобы добавить / преобразовать информацию в зависимости от того, содержит ли строка что-либо или имеет значение NULL.

Вот мой запрос:

SELECT users.user_uid, daten.tab_lkw, daten.feld0
FROM users
LEFT JOIN (SELECT DISTINCT daten.feld0, daten.tab_lkw FROM daten WHERE daten.feld0 = '2018-06-22' ) daten ON users.user_uid = daten.tab_lkw
WHERE users.user_uid NOT LIKE 'chef'
ORDER BY users.user_uid

Я получаю следующий результат:

result

Теперь самое сложное (по крайней мере, для меня). Я хочу добавить столбец, который отображает либо «нет», если feld0 содержит NULL, либо «да» в противном случае.

Независимо от того, что я делаю, я получаю ошибку синтаксиса SQL. Честно говоря, я не знаю, куда логически ставить CASE.

У кого-нибудь есть идея?

Большое спасибо

1 Ответ

0 голосов
/ 26 июня 2018

Это именно то, что я понял из вашего вопроса, надеюсь, это будет работать для вас. Я добавил столбец YesNo на основе значения daten.feld0

SELECT users.user_uid, daten.tab_lkw, daten.feld0,
    CASE WHEN daten.feld0 IS NULL THEN 'No' ELSE 'Yes' END AS YesNo
FROM users
LEFT JOIN (SELECT DISTINCT daten.feld0, daten.tab_lkw 
            FROM daten 
            WHERE daten.feld0 = '2018-06-22' ) daten ON users.user_uid = daten.tab_lkw
WHERE users.user_uid NOT LIKE 'chef'
ORDER BY users.user_uid
...