[英]Conditional branch in Postgres
我有一個表定義為
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只有一行,其值為'Meeting',因此返回'Meeting'。 否則,返回“ Multi_type”作為查詢結果。 我試過了 :
SELECT CASE WHEN count(type) > 1 THEN 'Multi_type'
ELSE type
END
FROM type_area
但是我需要再次按類型分組,這會導致錯誤的結果。
一個簡單的解決方案是在各處使用聚合函數,例如
CASE WHEN count(type) > 1
THEN 'Multi_type'
ELSE max(type)
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.