【问题标题】:How to filter records in WHERE condition based on a SQL CASE statement如何根据 SQL CASE 语句过滤 WHERE 条件中的记录
【发布时间】:2014-07-01 19:42:11
【问题描述】:

我有以下用于加载 codes 表的 case 语句。我必须找到加载到 codes 表中的记录数 当 [gli-src] = '8'

TRAN_CODE = 7
INSERT INTO codes 
    SELECT CASE 
             WHEN [cash-amt] > 0 THEN '1' 
             WHEN [prod-n] = '42' 
                  AND [tran-code] IN ( '-1', '-2', '-3' ) THEN '17' 
             WHEN [gli-src] = '8' THEN '7' 
             WHEN [prod-n] = '42' 
                  AND [gli-src] = 'L' 
                  AND [tran-code] IN ( '1', '2', '3' ) THEN '7' 
             WHEN [gli-src] = 'L' 
                  AND [prod-n] = '60' 
                  AND [tran-code] IN ( '4', '5', '6' ) THEN '7' 
             ELSE '4' 
           END AS TRAN_CODE 
    FROM   txn 

这是我尝试过的,虽然我很困惑如何过滤掉其他案例条件。

select COUNT(1) from  txn
where [CASH-AMT] <= 0 
and
.
.
.
. ????
and [gli-src] = '8'

【问题讨论】:

    标签: sql sql-server operators case conditional-statements


    【解决方案1】:
    SELECT COUNT(1)
    FROM (  SELECT CASE 
                     WHEN [cash-amt] > 0 THEN '1' 
                     WHEN [prod-n] = '42' 
                          AND [tran-code] IN ( '-1', '-2', '-3' ) THEN '17' 
                     WHEN [gli-src] = '8' THEN '7' 
                     WHEN [prod-n] = '42' 
                          AND [gli-src] = 'L' 
                          AND [tran-code] IN ( '1', '2', '3' ) THEN '7' 
                     WHEN [gli-src] = 'L' 
                          AND [prod-n] = '60' 
                          AND [tran-code] IN ( '4', '5', '6' ) THEN '7' 
                     ELSE '4' 
                   END AS TRAN_CODE, 
                   [CASH-AMT],
                   [gli-src]
            FROM   txn) AS T
    WHERE [CASH-AMT] <= 0 
    AND [gli-src] = '8'
    AND TRAN_CODE = 7
    

    【讨论】:

    • @ReeyaOberoi 你什么意思?,我不明白你的问题
    • 对不起,我明白了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2019-06-10
    • 2023-01-05
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多