Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将此语句更改为动态SQL?_Sql_Dynamic Sql - Fatal编程技术网

如何将此语句更改为动态SQL?

如何将此语句更改为动态SQL?,sql,dynamic-sql,Sql,Dynamic Sql,我试图将其更改为动态,但我仍停留在数据集上。 例如,语句 从列表中选择* 其中id在(1,2)中 还有1,2来自 从B中选择id 其中类型=“%xxx%” 上面的语句可以返回多个数字 我试图声明@id,但我不知道 你知道吗 谢谢你的建议:) 这被称为一个 编辑:当使用子查询不是一个选项并且您想要使用一个变量时,您可以声明一个临时表并将表a与该表连接起来 DECLARE @C table (id int) INSERT @C (id) SELECT id FROM B WHERE type='

我试图将其更改为动态,但我仍停留在数据集上。
例如,语句

从列表中选择*
其中id在(1,2)中

还有1,2来自
从B中选择id
其中类型=“%xxx%”

上面的语句可以返回多个数字
我试图声明@id,但我不知道

你知道吗
谢谢你的建议:)

这被称为一个

编辑:当使用子查询不是一个选项并且您想要使用一个变量时,您可以声明一个临时表并将表
a
与该表连接起来

DECLARE @C table (id int)

INSERT @C (id) 
SELECT id FROM B
WHERE type='%xxx%'

SELECT A.* 
FROM A INNER JOIN @C c ON A.id = c.id

也许您可以使用内部联接,它应该会返回您查看的结果集

建议一,请重写问题以便我阅读。您将希望澄清问题。我不明白你的问题是什么,谢谢,但如果在这种情况下,我不能使用子查询(出于某种原因),我如何在(1,2)中为id声明@id?我添加了一个使用临时表作为变量的解决方案。
DECLARE @C table (id int)

INSERT @C (id) 
SELECT id FROM B
WHERE type='%xxx%'

SELECT A.* 
FROM A INNER JOIN @C c ON A.id = c.id
SELECT A.* FROM A 
INNER JOIN B
WHERE B.type='%xxx%'
AND A.ID = B.ID