2016-10-13 1 views
0

В настоящее время я работаю над хранимой процедурой, которая создает таблицу со многими столбцами со многими условиями. Одним из требований этого процесса является то, что когда столбец А имеет значение ДА, то столбец B должен иметь значение. Я понятия не имею, как закодировать это, но я склонялся к сазе в ИНЕКЕ вдоль этих линийSQL Server: отображать результаты хранимой процедуры при определенных условиях

CASE WHEN Table.A = 'YES' then Table.B is not NULL end 
+0

Просто хочу добавить, что я не хочу только показывать результаты с этими условиями. Я все же хотел бы включить результаты, в которых столбец А имеет значения, отличные от «ДА». Единственный раз, когда я не хочу, чтобы какие-либо результаты отображались, - это когда оба столбца попадают под эти конкретные условия. –

ответ

0

Вы можете превратить его в

Where (Table.A = 'YES' and Table.B is not NULL) 
    OR Table.A <> 'YES' 

Может быть, вы должны добавить полный запрос чтобы он был добавлен в правильном направлении к запросу

+0

Если я включаю это в предложение where, это даст мне результаты, когда A = 'YES' и B не NULL, или будет применяться только в том случае, если A = 'YES'? –

+0

@GabriellCarter Он будет проверять как на условия, удовлетворяющие (т.е.) 'A' должен быть' YES', а 'B' должен быть' NOT NULL' –

+0

Таким образом, добавив это, он исключит все результаты, в которых оба условия не применяются верный? Я все равно хотел бы включить результаты, когда столбец А имеет значения, отличные от А. Единственное время, когда я не хочу, чтобы результаты отображались, находится в этих конкретных условиях. –

0

Я предполагаю, что вам нужно включить в ваш процесс другую логику, чего вы можете достичь, вставив в нее case такие заявления, как показано ниже. Если нет, ответ Prdp будет достаточным для ваших нужд.

where case when Table.A = 'YES' 
     then case when Table.B is not null 
       then 1 
       else 0 
       end 
     else 0 
     end = 1 
Смежные вопросы