Всем добрый день! У меня есть задача - написать скрипт, имеющий в конструкции WHERE опциональные условия. Например: select * from table where age = {age} , где {age} - это некий параметр, который будет подставлять сервис. Этот параметр является опциональным, т.е. его может не быть и тогда ожидается, что скрипт вернет данные по всем значениям атрибута age Подскажите пожалуйста, можно ли и что написать в условии скрипта, чтобы он возвращал либо данные по запрошенным возрастам, либо по всем возрастам в случае, если параметр не передан сервисом, т.е. равен NULL?
А скрипт как выполняется и формируется? Это классический случай для динамического sql. Если значение параметра не передано, то условие просто не включается в запрос.
BlackEric писал(а) Fri, 19 July 2024 13:12 Это классический случай для динамического sql. С чего вы взяли, что это классический случай? Для чего использовать динамический запрос, если можно просто проверить параметр на null? select * from table where p_age ISNULL OR age = {p_age}
А с чего вы взяли, что там NULL обязательно будет? ТСу надо или условие с AGE (больше, меньше, равно - не суть) или вообще все записи вне зависимости, что там в AGE поле... Может запрос тупо в процедуру обернуть? if (age is NULL) then select .... from else select ... from ... where age=?age