Tsql 可以设置上一个查询的值

Tsql 可以设置上一个查询的值,tsql,Tsql,如何设置将值返回到新的查询 查询方式如下: DECLARE @count; SELECT COUNT(*) FROM a WHERE x = 1; SET @count = //result_last_query SELECT * FROM b WHERE z = @count; 如果要获取select查询的结果集并要在下一个语句中访问行数,可以使用@@rowcount 用法示例: Select top 10 * from SomeTable SELECT @@rowcount

如何
设置
将值返回到新的
查询

查询方式如下:

DECLARE @count;   

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

SET @count = //result_last_query

SELECT * FROM b WHERE z = @count;

如果要获取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
简单到:

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

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

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

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

DECLARE @count;   

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

SELECT * FROM b WHERE z = @count;
但是,请注意,该变量仅在执行过程中可见,因此您需要一次执行整个脚本,才能使
@count
变量在最后一次查询中起作用。

谢谢您的解决方案

我修改了答案代码

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