我需要得到如下结果
section_one | section_two
56788 678
这是我写的分别有上述结果的查询
Select count(*) as section_one from tableNew
WHERE columnone LIKE %hjk%
和
Select count(*) as section_two from tableNew
WHERE columnone NOT LIKE %hjk%;
如何将这两个组合在一个查询中并获得如上所示的结果?
我尝试了下面的方法,但似乎无法正常工作
select *,
CASE
WHEN columnone LIKE %hjk% THEN count(1) as section_one
ELSE count(1) as section_two
END
from tableNew
Group by tableid;
有没有其他方法可以在一个查询中同时拥有这两个条件? 在这方面的任何帮助都会很棒!
P.S: 还有其他方法可以检查 boolean
条件,而不是 columnone LIKE %hjk%
目标 columnone 不为空
最佳答案
尝试使用 SUM
select
SUM(columnone LIKE %hjk%) as section_one,
SUM(columnone NOT LIKE %hjk%) as section_two
from tableNew
Group by tableid;
或者你可以使用CASE
select
SUM(CASE WHEN columnone LIKE %hjk% THEN 1 ELSE 0 END) as section_one,
SUM(CASE WHEN columnone NOT LIKE %hjk% THEN 1 ELSE 0 END) as section_two
from tableNew
Group by tableid;
关于sql - 在单个查询中从两个不同的条件获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22006164/