SQL 查询以根据列值有条件地获取列结果
SQL Query to get column result conditionally based on column value
下面是我的SQLTable,
我如何从这个 table 中得到结果 pack_cd 和不为空的日期。例如
来自 SQL Table 我想得到 PACK_CD
和日期
ETDT
如果它 NOT NULL
PPDT
如果 ETDT IS NULL
和 PPDT
是 NOT NULL
PDT
如果 ETDT IS NULL
和 PPDT
是 NULL
并且 PDT
是 NOT
NULL
使用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]
下面是我的SQLTable,
我如何从这个 table 中得到结果 pack_cd 和不为空的日期。例如
来自 SQL Table 我想得到 PACK_CD
和日期
ETDT
如果它NOT NULL
PPDT
如果ETDT IS NULL
和PPDT
是NOT NULL
PDT
如果ETDT IS NULL
和PPDT
是NULL
并且PDT
是NOT NULL
使用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]