我有一个如下所示的查询:
SELECT
case when count(*) > 0 then 'Y' else 'N' end exists,
column
FROM
table
WHERE
condition;
这不起作用,因为我没有按功能分组。但如果我在“列”上分组,那么如果条件不满足,我会得到0行。我知道我的查询将只返回一行,但即使我只查询第一行,它仍然表示它需要按功能分组。
查询的理想输出是
'Y'| 1
如果行存在且
'N'|空
如果不是
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
您可以这样做:
SELECT (case when count(*) > 0 then 'Y' else 'N' end) as exists,
MAX(column) as column
FROM table
WHERE condition;
没有GROUP BY
的聚合查询总是返回一行。
答案 1 :(得分:0)
SELECT
case when count(*) > 0 then 'Y' else 'N' end exists,
max(1) as column
FROM
table
WHERE
condition;
这会返回Y |满足条件时为1。