我有一个看起来像这样的查询:
use [dbName]
DECLARE @profile_id int
SET @profile_id = 18
DECLARE @test int
SET @test = (SELECT user_profile_id FROM tbl_profiles WHERE id = @profile_id)
SELECT @test as test
if @test = NULL
SELECT 1
else
SELECT 2
我知道表中的值为空,并且我可以看到 @test 已正确设置为该值,因为第一个 SELECT 显示:
|test
1|NULL
但是,在 IF 条件下,变量不会被视为 NULL,因为仅返回第三个 SELECT,显示:
|(no column name)
1| 2
这是为什么?