[英]Aggregate function inside Case Statement
我在case
語句中的集合函數遇到了一些麻煩。 我想編寫一個查詢,如果它等於字段A的最小日期,則將字段A設置為N
,否則將字段M
設置為N
樣例代碼:
SELECT *, CASE
WHEN Field_A = MIN(FIELD_A) THEN 'JN'
ELSE 'JP'
END AS JUDI
FROM TABLE_1
GROUP BY *
我不確定為什么命令會運行但無法正確執行。 它將所有行標記為JUDI
字段中的JN
。 我怎樣才能解決這個問題?
我正在運行SQL Server7。我想要實現的是,在具有不同日期的行列表中,它用JN
標記最早的日期,而用JP
標記最早的日期。
使用窗口功能:
SELECT t.*,
(CASE WHEN t.Field_A = MIN(t.FIELD_A) OVER () THEN 'JN'
ELSE 'JP'
END) AS JUDI
FROM TABLE_1 t;
您不需要為此在整個表上進行聚合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.