3

我想在 sql server 中具有类似于 ISNULL() 的功能,除了它应该检查表达式是否为空和空。

如果第一个参数为 null 或为空,则返回第二个。

有人能帮我吗?

4

3 回答 3

6

您可以使用NULLIFISNULL

SELECT ISNULL(NULLIF(@parameter, ''), @parameter2)
于 2015-08-19T07:44:58.443 回答
2

NULLIF如果传递的两个参数相同,将返回 NULL。如果 ISNULL第一个值为 NULL,则返回第二个值。

DECLARE @Input varchar(10) =NULL;
--DECLARE @Input varchar(10) ='';
--DECLARE @Input varchar(10) ='Good';

SELECT ISNULL(NULLIF(@Input,''),'Input is null or blank')
于 2015-08-19T07:49:50.803 回答
1

您可以使用COALESCE

例如:

SELECT COALESCE(First,Second,Third,'')
From TableName

COALESCE将返回列表中的第一个非空值。在这里阅读更多

编辑:

要检查空字符串,您可以使用CASE

SELECT CASE WHEN COALESCE(Field,'')='' THEN 'This is NULL or Empty' END
于 2015-08-19T07:44:36.787 回答