使用查询给变量赋值时,“子查询返回的值多于一个”错误 DECLARE @student char(8)SET @student=(SELECT top 1 姓名 FROM XS order by ...) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 恩,能理解(SELECT 姓名 FROM XS)返回的结果不只一个,这是书上一例体,不明白即然多个结果不能赋值给一个变量,那这个例题是经典大学教材,可不是地摊货 SET @student=(SELECT 姓名 FROM XS)-- (SELECT 姓名 FROM XS)里有个多姓名 不能全信书,哈哈,联机帮助中对于"这个符号也不是很统一,不信你可以看看好多print后面跟的字符串是用双引号的,但字符串是用单引号来分隔的。:) ---DECLARE @student char(8)---SET @student=(SELECT 姓名 FROM XS)---GO--结果:子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询--用作表达式时,这种情况是不允许的。???DECLARE @student char(8)SET @student=(SELECT top 1 姓名 FROM XS)GO你只能选择一条记录值赋给一个变量 SQL不支持数组。用临时表的方式做。CREATE TABLE STUDENT (student char(8))Insert STUDENT (student) Select 姓名 FROM XS 就是说SELECT后,会出来记录集。而记录集是不能赋值给单个变量的 --遍历记录集declare @student varchar(5000)select @student = ''select @student = @student + 姓名 + ',' from XSprint left(@student ,len(@student)-1) SET @student=(SELECT top 1 姓名 FROM XS order by ...)是不对的,我前几天也遇到了这样的问题,后来,我没办法,就用了sum把所有的值加起来,不过,那样肯定不对,而且,如果不是数值型 的,就更不能那样子了 更改表字段的定序規則 新手问个小问题,请大家帮忙 请问一条sql查询语句 一个行列转换的问题 为了表示对Herb2的感谢,请Herb2回复,请大家不要跟贴! 会员系统在sqlserver网络不通畅时大家都怎样处理,本地access存储再同步如何? mssql connection sesssion request 区别 如何找出某字段有重复的所有记录 识别父亲ID 修改数据库表后,程序连不上sql表了 再出100分请高手指教,数据库灾难恢复(提取有用的部分数据)! 求
-- (SELECT 姓名 FROM XS)里有个多姓名
---SET @student=(SELECT 姓名 FROM XS)
---GO
--结果:子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询--用作表达式时,这种情况是不允许的。
???DECLARE @student char(8)
SET @student=(SELECT top 1 姓名 FROM XS)
GO你只能选择一条记录值赋给一个变量
用临时表的方式做。
CREATE TABLE STUDENT (student char(8))
Insert STUDENT (student) Select 姓名 FROM XS
select @student = @student + 姓名 + ',' from XSprint left(@student ,len(@student)-1)
是不对的,我前几天也遇到了这样的问题,后来,我没办法,就用了sum把所有的值加起来,不过,那样肯定不对,而且,如果不是数值型 的,就更不能那样子了