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

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

pol_g

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

Barmutik

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

mikola1

#4
А никак, просто нужно исключить записи A1=@var1 из запроса.
 
D
#5
T-SQL, если не ошибаюсь это MS SQL.
А какие проблемы создавать запрос динамически ?
 
1
#6
может не совсем что те нуна но я при необходимости исключить какую нибудь проверку делаю так

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

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

mikola1

#7
<!--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

#8
Для: pol_g
Посмотрите компоненты FIBPlus, там есть макросы, которые призваны решить именно эту проблему. Сам не пользовал, т.к. генерю SQL на лету, а в дизайнтайм забиваю только голый SQL без условий.
 
D
#9
Для mikola1
Признаю, неправ, век живи , век учись ...
Но динамические запросы всетаки в этой ситуации само то...
 
P

pol_g

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