0

所以我需要根据另一个查询的结果进行查询。
有没有办法让我将查询结果设置为变量,以便我可以在另一个查询中使用该结果?
示例:
{原始查询} --->

SELECT
tablea.number

FROM tablea

INNER JOIN tableb

ON tablea.name = tableb.name

WHERE tableb.zip = '11111'

现在我想用这个结果来做另一个查询:

SELECT *

FROM tablea

WHERE number = (results of last query)

我认为有一种方法可以将第一个查询设置为一个变量,这样第二个查询就可以使用结果,只是不确定如何。谢谢。

4

2 回答 2

0

您可以直接选择到变量中:

declare @number int

select @number = tablea.number
from ...etc...

select *
from tablea
where number = @number

还有其他几种方法可以做同样的事情,但这是你用变量做的方式。

于 2013-07-18T15:51:27.673 回答
0

您可以使用INEXISTS

SELECT *
FROM tablea
WHERE name IN (SELECT name FROM tableb WHERE zip = '11111')

或者

SELECT *
FROM tablea A
WHERE EXISTS (SELECT 1 FROM tableb 
              WHERE zip = '11111'
              AND name = A.name)
于 2013-07-18T15:53:12.560 回答