繁体   English   中英

可以设置上一个查询的值

[英]Can set the value of the previous query

如何SET返回值到新query

查询如:

DECLARE @count;   

SELECT COUNT(*) FROM a WHERE x = 1;

SET @count = //result_last_query

SELECT * FROM b WHERE z = @count;

很简单:

 SELECT *  FROM b
     where z=(select count(*) FROM a FROM a WHERE x = 1;)}

你甚至不需要任何变量声明

谢谢好解决方案

我修改了答案的代码

SELECT  *
FROM    B
WHERE   id IN (
                SELECT COUNT(*) AS count
                FROM A
                WHERE x = 1
              )

如果要获取select查询的结果集并想要在下一个语句中访问行计数, 可以使用 @@rowcount

用法示例:

Select top 10 * from SomeTable
SELECT @@rowcount

上面脚本中的第一个查询将返回10行,第二个查询将返回10

你差不多完成了。 您可以在查询中设置如下:

DECLARE @count INT   

SELECT @count = COUNT(*) FROM a WHERE x = 1

SELECT * FROM b WHERE z = @count

您需要做的就是将变量放在查询本身中,以便使用行计数设置变量的值。

然后,您可以在下一个查询中使用变量的值。

DECLARE @count;   

SELECT @count = COUNT(*) FROM a WHERE x = 1;

SELECT * FROM b WHERE z = @count;

但是,请注意,变量只会在执行期间可见,因此您需要一次执行整个脚本 ,以便@count变量适用于上一次查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM