繁体   English   中英

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

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

我需要检查我的存储过程中的某个coloumn是空还是null。

这是我现在所拥有的片段:

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

我正在检查a.MiddleName是否为NULL,但我如何检查它是否为空,如果它是空的只是插入一个空字符串(没有空格)?

谢谢

改成

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'

另一个解决方案是:

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