Faire un UNION ALL des deux déclarations :
SELECT *
FROM mytable
WHERE myid = @col
UNION ALL
SELECT *
FROM mytable
WHERE @col IS NULL
ou simplement les diviser en un IF / ELSE bloc d'une procédure stockée.
Dans tous les cas, l'optimiseur pourra optimiser les requêtes séparément, en ignorant complètement l'une d'entre elles en fonction de la valeur de @col .