select * from EnergyDataSumByMonth where DAMonth in (select StdCode from CodeDetail where StdCode = 'Winter')
问题一:“in”不能这样用吗???
问题二:这样做发生错误。 declare @rv varchar(100)select @rv = (select StdCode from CodeDetail where StdCode = 'Winter')
错误信息:
消息 512,级别 16,状态 1,第 3 行
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
怎么看“select StdCode from CodeDetail where StdCode = 'Winter'”的数据呢???
问题一:“in”不能这样用吗???
问题二:这样做发生错误。 declare @rv varchar(100)select @rv = (select StdCode from CodeDetail where StdCode = 'Winter')
错误信息:
消息 512,级别 16,状态 1,第 3 行
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
怎么看“select StdCode from CodeDetail where StdCode = 'Winter'”的数据呢???
解决方案 »
- 如何加锁呢?
- 这段sql该怎么写?
- 查询出随即排列的字段,插入到另一张表的一个字段里面出错,求解决
- 请教个 横表竖查+平均值统计的问题
- sqlserver2000 text类型 特殊字符限制问题...
- 求教:sqlserver中if语句的使用
- SQL SERVER查询优化,连接(JION),OR,AND优化的原理!(有理者给分)
- 数据库内容的加密问题
- 在VFP中我照着一个原有表单程序(表单有一个页框,四页面的),我想修改原来的四页面,想直截生成一个新表单程序,现在我已设计好,但一运行却什么都没有。主要会是什么原因呢?
- sql语句查询某段是否是否含有一小段字符
- SQL 2008 是在新建查询里面输入建表语句么?
- sql 截取各个字符串
declare @rv varchar(100)
select @rv = (select StdCode from CodeDetail where StdCode = 'Winter')你定义的是一个字符串,但是返回的是一个结果集,或者可以理解为一个表。所以不行。你要看数据,select StdCode from CodeDetail where StdCode = 'Winter'直接执行不行吗?
语法正确,但是你要确认where子句中的DAMonth 和 in子句中的StdCode 是不是一回事第二条:
语法正确,但是你必须确保select子句一定只会返回的一条记录,
否则就会引发你看到的那段异常信息
SET @rv = (select TOP 1 StdCode
from CodeDetail
where StdCode = 'Winter');
并且,实际中,TOP 1以及各种聚合函数也经常出现在子查询中
关于这种子查询的用法,请参见MSDN:
http://msdn.microsoft.com/zh-cn/library/ms190609(v=SQL.105).aspx
问题一:“in”不能这样用吗???
答:可以
问题二:这样做发生错误。
我们撇开这样是否合理不谈
你的代码可以改为
declare @rv varchar(100)
select @rv = StdCode from CodeDetail where StdCode = 'Winter'
(1)DAMonth、StdCode是不是可关联的?
(2)可以用in,但检查一下in 后面的select检索出来的是不是null,或者把in换为exists也可以问题2:
(1)子查询返回的值超过1。这是不允许在子查询中包括,!=,<,>,< =,> =或子查询是用来作为一种表达。有多个返回值。
(2)要向这样写 select @rv = StdCode from CodeDetail where StdCode = 'Winter