CASE和NULLS问题

时间:2017-03-02 01:56:36

标签: tsql null case

我不经常使用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');**

1 个答案:

答案 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');