2017-02-21 35 views
1

Как сделатьКак сделать, когда X является нулевым, а затем «a», «b», «c»?

udfo в (случай, когда фонд равна нулю, то «а», «б», «с» еще «d» конец)

, потому что вы можете сделать только:

udfo in (случай, когда фонд равен нулю, а затем 'a' else 'd' end) ?

+0

Серьезно это непонятно ... Прочтите свой вопрос еще раз. – SriniV

+0

Пожалуйста, ** [РЕДАКТИРОВАТЬ] ** ваш вопрос и добавить некоторые примеры данных и ожидаемый результат на основе этих данных. [** Отформатированный текст **] (http://stackoverflow.com/help/formatting), пожалуйста, [скриншоты] (http://meta.stackoverflow.com/questions/285551/why-may-i-not -Закачать-образы-оф-кода-на-так: когда-запрашиваемая-а-вопрос/285557 # 285557) –

ответ

1

Используйте OR и два взаимоисключающих условия:

SELECT * 
FROM your_table 
WHERE (fund IS NULL  AND udfo IN ('a', 'b', 'c')) 
OR  (fund IS NOT NULL AND udfo IN ('d')) 

Можно даже реализовать его с помощью CASE заявление:

SELECT * 
FROM your_table 
WHERE CASE WHEN fund IS NULL AND udfo IN ('a', 'b', 'c') 
      THEN 1 
      WHEN fund IS NOT NULL AND udfo IN ('d') 
      THEN 1 
      ELSE 0 
     END = 1 

Но я считаю, бывший вариант легче читать.

 Смежные вопросы

  • Нет связанных вопросов^_^