简体   繁体   English

如果列为空或空,则SQL Server存储过程替换空字符串

[英]SQL Server stored proc substitute an empty string if column is empty or null

I need to check to see if a certain coloumn in my stored proc is either empty or null. 我需要检查我的存储过程中的某个coloumn是空还是null。

This is a snippet of what I have right now: 这是我现在所拥有的片段:

SELECT * , 
CASE WHEN a.USER IS NULL
    THEN b.ROLE
    ELSE ISNULL(a.FirstName,'') + ' ' + (ISNULL(a.MiddleName+' ','') + ISNULL(a.LastName,'')
END AS 'CustomerName'

I am checking to see if a.MiddleName is NULL but how do I also check to see if its empty and if its empty to just insert a empty string (no space)? 我正在检查a.MiddleName是否为NULL,但我如何检查它是否为空,如果它是空的只是插入一个空字符串(没有空格)?

Thanks 谢谢

Change to 改成

SELECT 
    * , 
    CASE 
       WHEN a.USER IS NULL
         THEN b.ROLE
         ELSE CASE 
                WHEN ISNULL(a.MiddleName, '') = '' 
                  THEN ISNULL(a.FirstName,'') + ' ' + ISNULL(a.LastName,'')

                  ELSE ISNULL(a.FirstName,'') + ' ' + a.MiddleName + ' ' + ISNULL(a.LastName,'')
              END
    END AS 'CustomerName'

Another sollution is: 另一个解决方案是:

SELECT * , 
CASE WHEN a.USER IS NULL
THEN b.ROLE
ELSE ISNULL(a.FirstName,'') + replace( (  ' ' + ISNULL(a.MiddleName+' ',' '),'  ',' ') + ISNULL(a.LastName,'')
END AS 'CustomerName'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM