Переключить регистр, где оговорка оракула - PullRequest
0 голосов
/ 02 мая 2018

У меня есть сценарий ниже. Не могли бы вы исправить приведенный ниже запрос ..

 where l.au=m.acad_group

 and l.acad_prog = m.acad_prog

 case when acad_plan is not null then and l.acad_plan = m.acad_plan else and 0=0 
 end case

case when l.acad_sub_plan is not null then and l.acad_sub_plan=m.acad_sub_plan 
else and 0=0 end case;

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Не используйте CASE WHEN в предложении WHERE. Используйте AND и OR и скобки.

where l.au = m.acad_group
  and l.acad_prog = m.acad_prog
  and (and l.acad_plan = m.acad_plan or l.acad_plan is null)
  and (and l.acad_sub_plan = m.acad_sub_plan or l.acad_sub_plan is null)
0 голосов
/ 02 мая 2018

Если я правильно понимаю, вы можете использовать OR и AND вместо CASE WHEN

Вы можете попробовать это.

У меня есть небольшой вопрос по acad_plan is null, который acad_plan вы хотите проверить l.acad_plan или m.acad_plan?

where l.au=m.acad_group 
AND l.acad_prog = m.acad_prog
AND (acad_plan is null  OR( acad_plan is not null AND l.acad_plan = m.acad_plan))
AND (l.acad_sub_plan is null  OR( l.acad_sub_plan  is not null AND l.acad_sub_plan=m.acad_sub_plan))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...