Pour ce cas simple dans votre question, utilisez simplement
IF ( @place IS NULL )
SELECT *
FROM table1
ELSE
SELECT *
FROM table1
WHERE country = @place
Si votre situation réelle est plus complexe, vous pouvez utiliser
select *
from Table1
where @place is null or [email protected]
option (recompile)
La raison du besoin de la recompile
conseil est d'éviter d'avoir un plan unique pour les deux cas et de faire une analyse inutile dans le cas où vous fournissez une valeur explicite.
Celles-ci, ainsi que d'autres alternatives telles que la génération dynamique de la requête, sont décrites en détail dans l'article Recherche dynamique Conditions en T-SQL