我不经常使用CASE但有一个非常简单的查询我希望在值为NULL时返回一个通用语句。我写了下面的内容并没有得到任何错误,但它也没有捕获NULL值。我缩短了文章列表,因为它有几千条,但希望有人可以指出我可能做错了什么。先感谢您。
**USE Asag_Reporting
GO
SELECT DISTINCT ARTICLE_NUMBER,
CASE PM_NAME
WHEN NULL THEN 'No PM Available'
ELSE PM_NAME
END AS 'PM_NAME'
FROM vw_GIM_Articles
WHERE ARTICLE_NUMBER IN ('15110',
'19228',
'34563',
'36516');**
答案 0 :(得分:3)
经过多思考后,我更喜欢这个,而不是我在下面写的内容。
SELECT DISTINCT ARTICLE_NUMBER,
COALESCE(PM_NAME, 'No PM Available') AS [PM_NAME]
FROM vw_GIM_Articles
WHERE ARTICLE_NUMBER IN ('15110','19228','34563','36516');
试试这个。
SELECT DISTINCT ARTICLE_NUMBER,
CASE
WHEN PM_NAME IS NULL THEN 'No PM Available'
ELSE PM_NAME
END AS [PM_NAME]
FROM vw_GIM_Articles
WHERE ARTICLE_NUMBER IN ('15110',
'19228',
'34563',
'36516');