确定CASE中的最后一条记录

时间:2015-07-02 14:13:32

标签: sql

可能很简单......我有一个SQL查询......

SELECT a,
          CASE WHEN a=1 THEN 'one'
               WHEN a=2 THEN 'two'
               ELSE 'other'
          END
    FROM test;

(来自文档)

我想识别集合中的最后一条记录并根据该条件采取行动。

1 个答案:

答案 0 :(得分:2)

根据您在问题中解释的内容,有两种可能的情况。

其中一个是在a列中找到的最大值,您希望显示某条消息:

SELECT
    a
    , CASE
        WHEN a = 1 THEN 'ONE'
        WHEN a = 2 THEN 'TWO'
        WHEN a = (SELECT MAX(a) FROM test) THEN 'MAX'
        ELSE 'OTHER'
     END
FROM TEST;

另一种可能的情况是,只有表格中的最后一条记录才能显示某条消息。在这种情况下,您的查询需要更改为:

SELECT
    a
    , CASE
        WHEN a = 1 THEN 'ONE'
        WHEN a = 2 THEN 'TWO'
        WHEN a = (SELECT TOP 1 a FROM TEST ORDER BY a DESC) THEN 'MAX'
        ELSE 'OTHER'
     END
FROM TEST
ORDER BY A;