Условие SQL CASE в выражении WHERE 'THEN NULL' - PullRequest
0 голосов
/ 09 октября 2018

Я пытался заменить значение из 'operation_num', если 'column_task' имеет определенное значение.Но я не могу найти подходящего утверждения.Не могли бы вы мне помочь?

К вашему сведению: столбец 'operation_num' не содержит значения NULL.

WHERE
  CASE operation_num WHEN column_task = 'EXERCISE' THEN operation_num is null
                     ELSE operation_num -- operation_num = operation_num
  END

Спасибо

Ответы [ 5 ]

0 голосов
/ 09 октября 2018

Я думаю, что вы намереваетесь:

WHERE column_task <> 'EXERCISE' OR operation_num IS NULL)
0 голосов
/ 09 октября 2018

Я прошу прощения за мой неправильный вопрос.Я наконец решил свою проблему в части «SELECT» в запросе:

select 
  (case when (to_char(operation_num) = '10' and column_task = 'EXERCISE')
  then REPLACE(to_char(operation_num),'10',' ')
  else to_char(operation__num)
  end) as "column"
  ,column_task
from  my_table

Но спасибо всем за ваши усилия.

0 голосов
/ 09 октября 2018

Преобразуйте его в AND/OR (также будет иметь лучшую производительность):

WHERE (column_task = 'EXERCISE' and operation IS NULL)
    OR operation_num

Хотя я не понимаю последнее условие.

0 голосов
/ 09 октября 2018

Я думаю, что это будет похоже на

1002 *
0 голосов
/ 09 октября 2018

Попробуйте это

WHERE
  CASE WHEN column_task = 'EXERCISE' THEN null
                     ELSE operation_num
  END
...