下面是我的SQL表,
如何从此表中获取pack_cd的结果和非空的日期。 e.g。
从SQL表中我希望得到PACK_CD
并将日期作为
ETDT
如果是NOT NULL
PPDT
如果ETDT IS NULL
且PPDT
为NOT NULL
PDT
如果ETDT IS NULL
且PPDT
为NULL
且PDT
为NOT
NULL
答案 0 :(得分:4)
使用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
答案 1 :(得分:0)
这是另一种了解的选择。你和@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]