我有一个表定义为
CREATE TABLE public.area
(
id INT,
type VARCHAR(45)
);
然后我执行了以下SQL:
WITH type_area AS (
SELECT type
FROM area
WHERE area.id = 300
GROUP BY type
)
从type_area我有一组不同的类型。现在,如果集合只包含一种类型,我需要返回该类型,否则' Multi_type'将被退回。
例如:type_area只有一行,值为'会议'所以'会议'退回。否则' Multi_type'作为查询结果返回。 我试过了:
SELECT CASE WHEN count(type) > 1 THEN 'Multi_type'
ELSE type
END
FROM type_area
但我需要再按类型分组,这会导致错误的结果。
答案 0 :(得分:2)
一个简单的解决方案是在任何地方使用聚合函数,例如
CASE WHEN count(type) > 1
THEN 'Multi_type'
ELSE max(type)
END