我有以下代码
DECLARE @a INT
SET @a = 1
SELECT TOP 1
@a = id
FROM
test
WHERE
name = 'notexist'
SELECT @a
如果@a
语句找不到任何行,变量1
仍然会有SELECT
值,是否可以将@a
变量设置为null SELECT
语句在SET @a = NULL
语句之前未添加SELECT
的情况下找不到任何行?
答案 0 :(得分:4)
以这种方式分配价值
SET @a = (
SELECT TOP 1
id
FROM
test
WHERE
name = 'notexist'
)
SELECT @a
答案 1 :(得分:1)
试试这个
SELECT TOP 1
@a = id
FROM
test
WHERE
name = 'notexist'
If @@rowcount = 0
set @a = NULL
或
set @a = case when @@rowcount = 0 then null else @a end
但最好避免1
的初始化。默认情况下,它将是NULL