Erstellen Sie ein UNION ALL der beiden Anweisungen:
SELECT *
FROM mytable
WHERE myid = @col
UNION ALL
SELECT *
FROM mytable
WHERE @col IS NULL
oder teilen Sie sie einfach in einem IF / ELSE auf Block einer gespeicherten Prozedur.
In beiden Fällen kann der Optimierer die Abfragen separat optimieren und je nach Wert von @col eine davon vollständig ignorieren .