IsEmpty函数如SQL Server中的ISNULL?

use*_*567 12 sql t-sql sql-server sql-server-2008-r2

我有这个sql,

IF(@ID = '')
BEGIN
    SET @ID = NULL;
END

IF(@Name = '')
BEGIN
    SET @Name = NULL;
END

IF(@PhoneNumber = '')
BEGIN
    SET @PhoneNumber = NULL;     
END

IF(@Price = '')
BEGIN
    SET @Price = NULL;
END

IF(@NewPrice = '')
BEGIN
    SET @NewPrice = NULL;
END

IF(@ModelNumber = '')
BEGIN
    SET @ModelNumber = NULL;
END

IF(@SKU = '')
BEGIN
    SET @SKU = NULL;
END
Run Code Online (Sandbox Code Playgroud)

我正在寻找IsEmpty函数,如ISNULL.所以我可以,

ISEMPTY(@SKU, NULL)
Run Code Online (Sandbox Code Playgroud)

这在SQL中是否可行.

Rob*_*ert 47

尝试使用NULLIF,如下所示

NULLIF(@SKU,'')
Run Code Online (Sandbox Code Playgroud)

  • 我正在检查Empty not null (2认同)

Tec*_*hDo 9

请试试:

SET @YourValue=ISNULL(NULLIF(@YourValue,' '), NULL)
Run Code Online (Sandbox Code Playgroud)

如果value为NULL,为空或空格,则返回NULL.

注意: NULLIF如果两个表达式不相等,则返回第一个表达式.如果表达式是等效的,则NULLIF返回第一个表达式类型的空值.

  • 是不是IsNull(<世界上任何值>,NULL)多余? (2认同)

小智 7

使用SET @SKU = NULLIF(@SKU,'')到@SKU设置为null,其中@SKU等于第二个参数的值.

IsEmpty不是内置的T-SQL函数,但NULLIF可以用来实现类似的行为.