SQL (где in) не возвращает результатов - PullRequest
0 голосов
/ 26 февраля 2019

Oracle "table1"

number code
111    aaa
222    bbb
333    aaa    

Запрос

SELECT COUNT(*) AS CNT, CODE
FROM TABLE1
WHERE NUMBER IN (
'444',
'111',
'333',
'222'
) GROUP BY CODE;

Ответ

CNT CODE
2   aaa
1   bbb

Нужен результат, пожалуйста, помогите.

CNT  CODE
1    null
2    aaa
1    bbb

Я пытаюсь запросить с "nvl", но он возвращает (считать) только строки с (нулевым) кодом, но не считает количество строк.

PS.Извините за плохой английский:)

1 Ответ

0 голосов
/ 26 февраля 2019

Я думаю, что вы хотите left join:

SELECT CODE, COUNT(t1.NUMBER) AS CNT
FROM (SELECT '444' as num FROM DUAL UNION ALL
      SELECT '111' as num FROM DUAL UNION ALL
      SELECT '333' as num FROM DUAL UNION ALL
      SELECT '222' as num FROM DUAL 
     ) x LEFT JOIN
     TABLE1 t1
     ON t1.NUMBER = x.num
GROUP BY CODE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...