SQL存储过程变量null检查
下面是我拥有的一个存储过程的一部分,如果您能告诉我为什么即使执行select语句后SQL存储过程变量null检查,sql,stored-procedures,Sql,Stored Procedures,下面是我拥有的一个存储过程的一部分,如果您能告诉我为什么即使执行select语句后@DefaultID为null,它也不会进入if条件,这将非常有帮助,我必须遵循不同的方法将值分配给@DefaultID,才能进行空值检查 先谢谢你 DECLARE @DefaultID varchar(25) DECLARE @ISDefault varchar(1) SELECT @DefaultID = (SELECT TABLE1.DEFID as DEFID F
@DefaultID
为null,它也不会进入if条件,这将非常有帮助,我必须遵循不同的方法将值分配给@DefaultID
,才能进行空值检查
先谢谢你
DECLARE @DefaultID varchar(25)
DECLARE @ISDefault varchar(1)
SELECT @DefaultID = (SELECT TABLE1.DEFID as DEFID
FROM TABLE1
WHERE TABLE1.ID = '123')
IF (@DefaultID = '')
SET @ISDefault = '1'
ELSE
SET @ISDefault = '0'
请检查使用情况
如果为空(@DefaultID=”)=''
而不是IF(@DefaultID='')
我猜您正在使用MS Sql server。使用
IF @DefaultID IS NULL
如果@DefaultID=''而不是
NULL
和'
是两个不同的东西。只需使用以下内容:-
IF(@DefaultID is NULL)
根据您使用的数据库系统,空字符串'
和NULL
是不等价的!检查=''
不会检查SQL Server中的NULL
。将(=,,=)NULL与任何内容进行比较总是返回未知的特殊值,该值始终为false。正如下面一些答案中所述,您应该使用IS NULL。
IF(len(@DefaultID) > 0)
SET @ISDefault = '1'
ELSE
SET @ISDefault = '0'