如何在Oracle查询中有条件地选择列

Tra*_*vis 6 sql oracle select

我想做的事情如下:

select (if lookup = 8 then 08 else lookup) lookup
  , //more columns
from lookup_table
order by lookup
Run Code Online (Sandbox Code Playgroud)

不幸的是,Oracle似乎不喜欢这种语法,我没有发现为什么或找到我应该使用的其他功能.

基本上,如果查找值为8,我想获得08,否则我想要查找的值.我确定我只是愚蠢.

Gor*_*off 13

你想要一个案例陈述:

select (case when lookup = 8 then 8 else lookup end) as lookup
Run Code Online (Sandbox Code Playgroud)

如果lookup是字符串,您可能需要:

select (case when lookup = '08' then '08' else lookup end) as lookup
Run Code Online (Sandbox Code Playgroud)

如果lookup是整数并且您想将其转换为字符串,则:

select (case when lookup = 8 then to_char(lookup, '00') else to_char(lookup, '00') end) as lookup
Run Code Online (Sandbox Code Playgroud)

但是,这对我来说似乎是多余的.