高老师实战 发表于 2023-9-14 12:04:35

如何在IF语句的Sql Server检查参数是空还是空null?

本代码在我的存储过程中:
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    .      @item1 = N''表明
SELECT * FROM TEST1 ///如果是正确的 @item1 = N'some'
代替
SELECT * FROM TEST2
它在sql用于验证字符串是否于验证字符串是否为null或为空,或者    我在某个地方犯了错误?
就像在C#中-> string.IsNullOrEmpty(myValue)
                                                               
    解决方案:                                                               
                                                                这是正确的行为。
如果将@设置item1为一个值,下面的表达式为true
IF (@item1 IS NOT NULL) OR (LEN(@item1) > 0)无论如何,在SQL Server没有这样的功能,但你可以创建自己的功能:
CREATE FUNCTION dbo.IsNullOrEmpty(@x varchar(max)) returns bit asBEGINIF @SomeVarcharParm IS NOT NULL AND LEN(@SomeVarcharParm) > 0    RETURN 0ELSE    RETURN 1END
页: [1]
查看完整版本: 如何在IF语句的Sql Server检查参数是空还是空null?