小编cea*_*rny的帖子

处理NULL时,SELECT @Var和SET @Var在T-SQL中的行为

每天我都会学到新东西,似乎:)有人可以向我解释以下代码行为背后的基本原理:

DECLARE @A INT

SET @A = 15
SET @A = (SELECT ValueThatDoesntExist FROM dbo.MyTable WHERE MyColumn = 'notfound')

SELECT @A
-- Rsultset is NULL

SET @A = 15
SELECT @A = ValueThatDoesntExist FROM dbo.MyTable WHERE MyColumn = 'notfound'

SELECT @A
-- Resultset is 15
Run Code Online (Sandbox Code Playgroud)

根据我的看法,如果结果集为NULL,则SET会更改变量的值,而SELECT则不会.这是正常的ANSI行为还是特定于T-SQL?

当然,如果我这样做SELECT @A = NULL,分配正确.

sql t-sql select

5
推荐指数
1
解决办法
432
查看次数

标签 统计

select ×1

sql ×1

t-sql ×1