SQL - 将查询存储为本地变量

时间:2013-07-18 15:48:33

标签: sql-server-2008

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

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)

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

2 个答案:

答案 0 :(得分:0)

您可以直接选择变量:

declare @number int

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

select *
from tablea
where number = @number

还有一些其他方法可以做同样的事情,但这就是你用变量做的方法。

答案 1 :(得分: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)