回 帖 发 新 帖 刷新版面

主题:一个select赋值的问题

我在一本书上看到说,在用select给变量赋值的时候,如果子查询返回多个值,就会自动把最后一个值赋给变量。
但我在实际操作中的结果却不是这样,如:
declare @a char(10)
select @a=
(select  name from table1)
select @a

这个就会出现以下错误:
服务器: 消息 512,级别 16,状态 1,行 2
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

(所影响的行数为 1 行)

-------------------

请高手指点!!!!

回复列表 (共5个回复)

沙发

在那个书上看的!
你看消息给你说的很明白了还要问吗?

板凳

declare  @i int
select  @i=job_id from jobs
print @i
这样试下

3 楼

你要明白,我想问的是这两者为什么会矛盾?

4 楼

我知道了,是书本例题有错误.

问题解决.

5 楼

杜绝盗版··!!!!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册