首页 > 解决方案 > 我如何在sql server中的where条件中使用case语句

问题描述

我有这个代码。我想CASE在子句中使用一个语句WHERE,但它不会运行:

SELECT 
    pdc_distribution,
    pdc_refund,pdc_type,
    pdc_amount 
FROM user_pdc_informations 
WHERE 
    (
        CASE WHEN pdc_type='D' 
            THEN (created_at BETWEEN 1583951400 AND 1584037799) 
            ELSE 1  
        END  
    ) 
    AND sport_id = 4 
    AND user_id = 7 
    AND match_id = 29743945

如何在此查询中使用 case 条件?

标签: sqlsql-servertsqlselectwhere-clause

解决方案


考虑OR改用:

SELECT 
    pdc_distribution,
    pdc_refund,pdc_type,
    pdc_amount 
FROM user_pdc_informations 
WHERE 
    (pdc_type <> 'D' OR created_at BETWEEN 1583951400 AND 1584037799)
    AND sport_id = 4 
    AND user_id = 7 
    AND match_id = 29743945

推荐阅读