use*_*664 4 c# sql-server sql-server-2008 vb.net-2010
我试图在子查询中为变量设置一个值,但它不起作用。
这是我的查询:
declare @val1 int
declare @val2 int
select @val1 = sum(column1)
,(select @val2 = (select sum(column2) from table2))
,(@val1+@val2)Result
from table 1
Run Code Online (Sandbox Code Playgroud)
我想要做的是设置@val2子查询帮助我我的意思是在子查询中设置而不是单独的选择语句
只需使用 3 个单独的选择:
select @val1 = sum(column1) from table1
select @val2 = sum(column2) from table2
select (@val1+@val2) as Result
Run Code Online (Sandbox Code Playgroud)
或者你也可以写 2 个选择:
select @val1 = sum(column1),
@val2 = (select SUM(column2) from table2)
from table1
select (@val1 + @val2) Result
Run Code Online (Sandbox Code Playgroud)
但不仅仅是1个选择:
为变量赋值的 SELECT 语句不得与数据检索操作结合使用
如果您需要在一次选择中完成所有操作并返回一个记录集,请不要使用变量,请这样做:
SELECT sum1 + sum2 FROM (
select sum(column1) as sum1,
(select SUM(column2) from table2) as sum2
from table1
) subquery
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17144 次 |
| 最近记录: |