Процедура SQL, где предложение для списка записей - PullRequest
0 голосов
/ 01 ноября 2010

У меня есть хранимая процедура, которая будет запрашивать и возвращать записи в зависимости от того, доступны ли элементы или нет.Эта часть проста, я просто передаю переменную, чтобы проверить, где доступно - да или нет.Но я хочу знать, как мне добавить туда предложение all (т.е. доступно, недоступно или все)?

Предложение where сейчас равно

where availability = @availability

доступны 1 или 0, больше ничего.

Ответы [ 4 ]

1 голос
/ 01 ноября 2010

Вы можете использовать NULL для представления всего.

WHERE (@availability IS NULL OR availability = @availability)
0 голосов
/ 01 ноября 2010

Не знаю тип @availability, но при условии -1 = все, тогда вы можете просто сделать

where @availability = -1 OR availability = @availability
0 голосов
/ 01 ноября 2010

несколько способов сделать это. Самый простой способ - установить значение @availability по умолчанию в null, а затем выражение where будет выглядеть следующим образом

WHERE (@availability IS NULL OR availability = @availability)
0 голосов
/ 01 ноября 2010
SELECT  *
FROM    mytable
WHERE   @availability IS NULL
UNION ALL
SELECT  *
FROM    mytable
WHERE   availability = @availability

Передав значение NULL, вы выберете все.

В этом запросе будет использоваться индекс availability, если есть.

...