Verwenden Sie für diesen einfachen Fall in Ihrer Frage einfach
IF ( @place IS NULL )
SELECT *
FROM table1
ELSE
SELECT *
FROM table1
WHERE country = @place
Wenn Ihre tatsächliche Situation komplexer ist, können Sie
verwendenselect *
from Table1
where @place is null or [email protected]
option (recompile)
Der Grund für die Notwendigkeit der recompile
Ein Tipp ist, einen einzigen Plan für beide Fälle zu vermeiden und einen unnötigen Scan durchzuführen, falls Sie einen expliziten Wert angeben.
Diese und andere Alternativen wie das dynamische Generieren der Abfrage werden ausführlich im Artikel Dynamische Suche behandelt Bedingungen in T-SQL