例如,如果我有以下声明:
declare @uid int;
set @uid = (select id from tablename where condition)
在这种情况下,如果 select 没有返回任何结果,那么它的值@uid
是多少?
例如,如果我有以下声明:
declare @uid int;
set @uid = (select id from tablename where condition)
在这种情况下,如果 select 没有返回任何结果,那么它的值@uid
是多少?
在这种情况下它将返回 NULL
简而言之,它将为空
我制作了简单的临时表来测试这个
declare @temp table
(
id int identity(1,1) not null ,
alpha nvarchar(50)
)
insert into @temp select 'z'
声明一个变量nvarchar type
并在此条件不满足的情况下获取值,则为 null,如果您通过 print 语句看到,则应该没有任何内容将被打印
declare @test nvarchar(50)
select @test=alpha from @temp where id=70
insert into @temp select @test
select * from @temp
print @test
我只是再次插入它以确认有空
做一个检查,像这样:
declare @uid int;
set @uid = (select id from tablename where condition)
If @uid IS NULL
print 'uid is null or not exist'
或者,您可以设置默认值以防返回 null
If @uid IS NULL
set @uid = 0