2013-03-27 5 views
4

Я хочу сделать что-то вроде:Как условно выбрать столбец в запросе Oracle

select (if lookup = 8 then 08 else lookup) lookup 
    , //more columns 
from lookup_table 
order by lookup 

К сожалению, Oracle, кажется, не нравится этот синтаксис, и я не в состоянии выяснить, почему или найти то, что другие функцию, которую я должен использовать.

В принципе, если значение поиска равно 8, я хочу получить 08, в противном случае я хочу значение поиска. Я уверен, что я просто глуп.

ответ

11

Вы хотите тематическое заявление:

select (case when lookup = 8 then 8 else lookup end) as lookup 

Если lookup строка символов, вы, вероятно, хотите:

select (case when lookup = '08' then '08' else lookup end) as lookup 

Если lookup является целым числом, и вы хотите, чтобы преобразовать его в строку, затем:

select (case when lookup = 8 then to_char(lookup, '00') else to_char(lookup, '00') end) as lookup 

Однако, это казалось бы излишним мне.

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