簡體   English   中英

Case語句中的聚合函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM