Как написать динамический SQL-запрос для предложения select where? - PullRequest
0 голосов
/ 18 марта 2019

Если переменная1 равна нулю Выберите * из таблицы Где условие1 И условие 2 И а не нуль и б не нуль еще Выберите * из таблицы Где условие 1 И условие 2 И ноль и б ноль

Как записать это как динамический запрос SQL, поскольку только два последних условия изменяются в «если и еще»?

1 Ответ

0 голосов
/ 18 марта 2019

Это может работать, а может и не работать, в зависимости от того, какая БД используется .. Попробуйте ее.

Select * from ConditionalWhere
Where condition1 = 1
  And condition2 = 1
  AND  CASE When (variable1 is null) 
              And ([a] is not null) 
              and ([b] is not null) 
              Then 1
            When (variable1 is not null)                        
              and ([a] is null)     
              and ([b] is null)     
              Then 1 
            Else 0
       End = 1
...