私は2つの一時テーブルを持っている、と言う#t1
と、#t2
SQL Serverの2008年に私が作成する必要があります#t3
よう:
#t1
は無関係に行がある場合#t2
、#t3
=select * from #t1
#t1
行がない場合、#t3
=select * from #t2
同じ列を想定#t1
し#t2
て持つことはできますが、その事実に頼りたくないと思います。
' if exists (select * ...)
'ステートメントから論理を引き出す何かを考えていましたが、ある種のブール演算子のようなものはもっと良いのではないでしょうか?
最も簡単な方法は、ロジックを次のように実装することです。
if (exists (select * from #t1))
begin
select *
into #t3
from #t1;
end;
else
begin
select *
into #t3
from #t2;
end;
これは、次のように1つのステートメントで実行できます。
select t.*
into #t3
from ((select *
from #t1
)
union all
(select *
from #t2
where not exists(select * from #t1)
)
) t
ただし、明示的if
な方が意図を表現するためのより明確な方法だと思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加