Sna*_*yes 18 sql sql-server-2005
我读到这个:我如何检查Sql服务器字符串是否为空或空,但在这种情况下它没有帮助我.
我的存储过程中的代码片段:
IF (@item1 IS NOT NULL) OR (LEN(@item1) > 0)
SELECT @sql = 'SELECT * FROM TEST1'
ELSE
SELECT @sql = 'SELECT * FROM TEST2'
PRINT @sql;
Run Code Online (Sandbox Code Playgroud)
@item1是NVARCHAR(1000)类型.
执行此存储过程时,我提供了值 item1
EXEC [dbo].[my_proc]
@item1 = N''
Run Code Online (Sandbox Code Playgroud)
表明
SELECT * FROM TEST1 //如果是正确的 @item1 = N'some'
代替
SELECT * FROM TEST2
它是sql中的一个函数来验证字符串是空还是空或者我在某处犯了错误?
就像在C#中 - > string.IsNullOrEmpty(myValue)
Mas*_*uso 32
这是正确的行为.
如果将@设置item1为值,则以下表达式将为true
IF (@item1 IS NOT NULL) OR (LEN(@item1) > 0)
Run Code Online (Sandbox Code Playgroud)
无论如何在SQL Server中没有这样的功能,但你可以创建自己的:
CREATE FUNCTION dbo.IsNullOrEmpty(@x varchar(max)) returns bit as
BEGIN
IF @SomeVarcharParm IS NOT NULL AND LEN(@SomeVarcharParm) > 0
RETURN 0
ELSE
RETURN 1
END
Run Code Online (Sandbox Code Playgroud)
Fáb*_*nto 10
要检查变量是null还是空,请使用以下命令:
IF LEN(ISNULL(@var, '')) = 0
-- Is empty or NULL
ELSE
-- Is not empty and is not NULL
Run Code Online (Sandbox Code Playgroud)