
[英]When inserting a row, can the `ParentId` be set as the `Id` from a previous inserted row within the same query?
[英]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.