Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Параметр в условии IN  [new]
san7667
Member

Откуда:
Сообщений: 31
Добрый день!
Подскажите пожалуйста!
Как правильно написать запрос к БД , что бы условие IN считало полностью параметр..

Пример:

Select count(np) from table1
where table1.npi in (:param1)


При передачи одного значения, допустим (1), запрос отрабатывается функция count возвращает 1

Если же я передаю в параметр (1,2) , то count возвращает 0
15 окт 21, 17:15    [22384282]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
san7667
Как правильно написать запрос к БД , что бы условие IN считало полностью параметр..
никак.
пихай содержимое во временную таблицу, а потом делай с ней JOIN
15 окт 21, 17:19    [22384284]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 1119
san7667,

А ":param" строка что ли?
15 окт 21, 17:52    [22384300]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
san7667
Member

Откуда:
Сообщений: 31
KreatorXXI,
Получается что так, там несколько значений через запятую
В условии in , поле npi integer

Сообщение было отредактировано: 15 окт 21, 17:44
15 окт 21, 17:55    [22384302]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 1128
Мимопроходящий
san7667
Как правильно написать запрос к БД , что бы условие IN считало полностью параметр..
никак.
пихай содержимое во временную таблицу, а потом делай с ней JOIN


Или собирай execute statement :)
15 окт 21, 18:02    [22384310]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
san7667
Member

Откуда:
Сообщений: 31
Старый плюшевый мишка,

Можно небольшой пример для особо одарённых?)
15 окт 21, 18:04    [22384311]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 1128
san7667
Старый плюшевый мишка,

Можно небольшой пример для особо одарённых?)


Ай, я уже 4 с лихуем года не практикую, деталей синтаксиса не помню, да и остановился в развитии на 1.5. Идея такая:

S='Select count(np) from table1 where table1.npi in'||:param
Execute Statement (S)

Есть ещё execute block. Чем отличаются и детали по использованию с клиента и в PSQL - чти доку.
15 окт 21, 18:18    [22384320]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 1119
san7667,

Посмотрите в LR про execute statement. Если уж нужна строка. Лучше, я считаю, вообще пересмотреть логику.
15 окт 21, 18:50    [22384330]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 21038
6686267
18 окт 21, 09:52    [22384893]     Ответить | Цитировать Сообщить модератору
 Re: Параметр в условии IN  [new]
Шавлюк Евгений
Member

Откуда: Одесса
Сообщений: 610
WildSery,

Спасибо за ссылку, ускорил свою такую же процедуру
18 окт 21, 13:42    [22385017]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить