powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите с запросом
4 сообщений из 4, страница 1 из 1
Помогите с запросом
    #33768783
Eugene7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли использовать IF в WHERE?

Если нельзя, то еще вопросик:
В процедуру передаеться cMassiv, который содержит строку, которую надо найти в таблице. Таких входных параметров много(около 10). Какие-то могут быть переданы, какие то нет(тогда будут null по умолчанию).
Что-бы не расписывать что то типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
if cMassiv is null then
select "Parent"."Table".Column
from   "Parent"."Table"
else
select  "Parent"."Table".Column
from    "Parent"."Table"
where  "Parent"."Table".Column like cMassiv

(ведь переменных много, и получиться много select'ов)
Хочу сделать так:

Код: plaintext
1.
2.
3.
4.
if cMassiv is null then cMassiv = '%%'

select  "Parent"."Table".Column
from    "Parent"."Table"
where  "Parent"."Table".Column like cMassiv

Т.е. присвоить cMassiv такое значение, что-бы все строки удовлетворяли сравнению c cMassiv. Но возникла проблемма с NULL значениями в строках.
Какое значение можно присвоить cMassiv, что-бы оно включало и NULL и
любое не NULL значение(если это вообще возможно)?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33768833
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene7Можно ли использовать IF в WHERE?

Можно. Смотри в хелпах про IF expressions (не путать с оператором IF).

--


Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Помогите с запросом
    #33769887
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene7
Код: plaintext
1.
2.
3.
4.
if cMassiv is null then cMassiv = '%%'

select  "Parent"."Table".Column
from    "Parent"."Table"
where  "Parent"."Table".Column like cMassiv

Т.е. присвоить cMassiv такое значение, что-бы все строки удовлетворяли сравнению c cMassiv. Но возникла проблемма с NULL значениями в строках.
Какое значение можно присвоить cMassiv, что-бы оно включало и NULL и
любое не NULL значение(если это вообще возможно)?
Так пойдет?
Код: plaintext
1.
2.
select  "Parent"."Table".Column
from    "Parent"."Table"
where  (cMassiv is null) or ("Parent"."Table".Column like cMassiv)
...
Рейтинг: 0 / 0
Помогите с запросом
    #33770983
Eugene7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Eugene7
Код: plaintext
1.
2.
3.
4.
if cMassiv is null then cMassiv = '%%'

select  "Parent"."Table".Column
from    "Parent"."Table"
where  "Parent"."Table".Column like cMassiv

Т.е. присвоить cMassiv такое значение, что-бы все строки удовлетворяли сравнению c cMassiv. Но возникла проблемма с NULL значениями в строках.
Какое значение можно присвоить cMassiv, что-бы оно включало и NULL и
любое не NULL значение(если это вообще возможно)?
Так пойдет?
Код: plaintext
1.
2.
select  "Parent"."Table".Column
from    "Parent"."Table"
where  (cMassiv is null) or ("Parent"."Table".Column like cMassiv)

Да, спасибо, хорошее решение
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]