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 .