我这样说的: 我如何检查如果SQL服务器字符串为空或空的 ,但在这种情况下它不会帮助我。
从我的存储过程的代码:
IF (@item1 IS NOT NULL) OR (LEN(@item1) > 0)
SELECT @sql = 'SELECT * FROM TEST1'
ELSE
SELECT @sql = 'SELECT * FROM TEST2'
PRINT @sql;
@item1
是NVARCHAR(1000)
输入。
当执行此存储过程,我所提供的价值item1
EXEC [dbo].[my_proc]
@item1 = N''
表明
SELECT * FROM TEST1
//这是正确的,如果@item1 = N'some'
代替
SELECT * FROM TEST2
它是介于SQL函数来验证一个字符串为null或空, 或者我做了什么地方错了吗?
像在C# - > string.IsNullOrEmpty(myValue)
这是正确的行为。
如果你设置@ item1
的值下面的表达式为真
IF (@item1 IS NOT NULL) OR (LEN(@item1) > 0)
反正在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
要检查是否变量为空或空的使用:
IF LEN(ISNULL(@var, '')) = 0
-- Is empty or NULL
ELSE
-- Is not empty and is not NULL
当然,这作品; 当@item1 = N''
它IS NOT NULL
。
您可以定义@item1
为NULL
默认情况下,在您的存储过程的顶部,然后在参数无法通过。
文章来源: How do check if a parameter is empty or null in Sql Server stored procedure in IF statement?