あなたの質問のこの単純なケースには、
を使用してください。IF ( @place IS NULL )
SELECT *
FROM table1
ELSE
SELECT *
FROM table1
WHERE country = @place
実際の状況がもっと複雑な場合は、使用できます
select *
from Table1
where @place is null or [email protected]
option (recompile)
recompile
が必要な理由 ヒントは、両方のケースに対応する単一のプランを用意したり、明示的な値を指定した場合に不要なスキャンを実行したりしないようにすることです。
これら、およびクエリの動的生成などの他の代替方法については、記事動的検索で詳しく説明されています。 T-SQLの条件