Переменные в запросе

  • Автор темы pol_g
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

pol_g

Пипл подскажите пожалуйста сдедующую вещь:
у меня есть следующий запрос:
SELECT A1,A2...An FROM T1 WHERE A1=@var1,A2=@var2...
какие значения надо присвоить переменным @var1, @var2 чтобы они не участвовали в запросе, т.е чтобы на них при выборке не обращалось внимание и проходили бы все значения.
 
B

Barmutik

Какой язык программирования?
Какой сервер баз данных?
 
M

mikola1

А никак, просто нужно исключить записи A1=@var1 из запроса.
 
D

DZX

T-SQL, если не ошибаюсь это MS SQL.
А какие проблемы создавать запрос динамически ?
 
1

13-

может не совсем что те нуна но я при необходимости исключить какую нибудь проверку делаю так

SELECT A1,A2...An FROM T1
WHERE (A1=@var1 or 0=@flag1) and
(A2=@var2 or 0=@flag2)

т.е. в зависомости от флага условие "отсекается"
 
M

mikola1

<!--QuoteBegin-13-я_Drakosha+31:10:2005, 11:10 -->
<span class="vbquote">(13-я_Drakosha @ 31:10:2005, 11:10 )</span><!--QuoteEBegin-->может не совсем что те нуна но я при необходимости исключить какую нибудь проверку делаю так

SELECT A1,A2...An FROM T1
WHERE (A1=@var1 or 0=@flag1) and
(A2=@var2 or 0=@flag2)

т.е. в зависомости от флага условие "отсекается"
[snapback]26496" rel="nofollow" target="_blank[/snapback]​
[/quote]

А вообще-то запрос выглядит как-то кривовато. Если используется Interbase 7.* то там есть возможность NULLIF, надо глядеть документацию.. Да и ставят вместо @, :

To DZX:
Ошибаетесь, уважаемый. Transact-SQL - расширение Microsoft и Sybase синтаксиса SQL
 
S

Sir Alex

Для: pol_g
Посмотрите компоненты FIBPlus, там есть макросы, которые призваны решить именно эту проблему. Сам не пользовал, т.к. генерю SQL на лету, а в дизайнтайм забиваю только голый SQL без условий.
 
D

DZX

Для mikola1
Признаю, неправ, век живи , век учись ...
Но динамические запросы всетаки в этой ситуации само то...
 
P

pol_g

Народ, спасибо за то что пишете и предлагаете решения.
Вообще то проект сдан в эксплуатацию ещё месяц назад :(
Использовали следующее решение:
Генерируем строку запроса с явно заданными параметрами непосредственно в коде программы и затем передаём запрос на выполнение.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!