0

複数の行を返す次のSQLがあります。

declare @blabla
select id from table where @blabla = blabla and blabla is blabla

以下のような複数の ID を返します。

ここに画像の説明を入力

後でストアドプロシージャについて説明します。そのクエリから結果を取得する必要があります。したがって、次のような別のクエリがあります。

select column from table where blabla IN (that 1st query)

したがって、私の解決策は、上記の最初のクエリを変数に入れてから実行することでした。だから私がしたことは次のようなものでした:

declare @query nvarchar(max)
set @query=
'
declare @blabla
select @body = id from table where @blabla = blabla and blabla is blabla
'

declare @result as nvarchar(max)
exec sp_executesql @query, N'@body varchar(max) output', @body = @result output


select column from table where blabla IN (@result)

しかし、上記の @result は 1 行しか返しませんでした。

ここに画像の説明を入力

これは、最初のクエリが実行されたときの最後の行です。

@result には、最後の ID だけでなく、複数の ID を含めたいと考えています。どうやってやるの?私のスクリプトの何が問題になっていますか?

ご提供いただけるご支援をいただければ幸いです。

ありがとう!

4

2 に答える 2

0

あなたが探しているのは一時テーブルです。

SELECT id INTO #TEMP FROM table WHERE ...

その後、先に進んで実行できます

SELECT * FROM #TEMP 
于 2013-04-15T08:01:00.137 に答える