简体   繁体   English

SQL(在其中)不返回任何结果

[英]SQL (where in) returns no results

Oracle "table1" Oracle“表1”

number code
111    aaa
222    bbb
333    aaa    

Query 询问

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

Answer 回答

CNT CODE
2   aaa
1   bbb

Need result, please help. 需要结果,请帮忙。

CNT  CODE
1    null
2    aaa
1    bbb

I try request with "nvl" but it returns(count) only rows with (null) code, but not count rows. 我尝试使用“ nvl”请求,但它仅返回(计数)具有(空)代码的行,而不返回行。

PS. PS。 Sorry for bad English :) 对不起,英语不好:)

I think you want a left join : 我想你想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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM