SQL 查询以根据列值有条件地获取列结果

SQL Query to get column result conditionally based on column value

下面是我的SQLTable,

我如何从这个 table 中得到结果 pack_cd 和不为空的日期。例如

来自 SQL Table 我想得到 PACK_CD 和日期

使用COALESCE:

SELECT
    PACK_CD,
    DATE = COALESCE(ETDT, PPDT, PDT)
FROM [YourTable]

如果您只想显示具有 NULL 列的那些行,只需添加一个 WHERE 子句:

WHERE
    ETDT IS NULL
    OR PPDT IS NULL
    OR PDT IS NULL

这是理解的替代选项。正如@wewesthemenace 建议的那样,您实现了 COALESCE。

SELECT
    PACK_CD,
    DATE = case when isnull(ETDT,'') != '' then ETDT 
                else 
                    case when isnull(PPDT,'') != '' then PPDT 
                    else
                        PDT
                    end
                end             
FROM [YourTable]