Rozumiem, że chcesz dynamicznego zachowania na swoim WHERE
klauzula, bez konieczności dynamicznego kompilowania Twój WHERE
klauzula.
Za pomocą jednego parametru możesz użyć ISNULL
(lub COALESCE
) w ten sposób:
SELECT * FROM Table WHERE ID = ISNULL(@id, ID)
co pozwala na NULL
parametr pasujący do wszystkich. Niektórzy wolą dłuższe, ale bardziej wyraźne:
SELECT * FROM Table WHERE (@id IS NULL) OR (ID = @id)