8

私は次のようなことをしたい:

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

残念ながら、Oracle はこの構文を好まないようです。その理由や、使用すべき他の関数を見つけることができません。

基本的にはルックアップ値が8なら08、そうでなければルックアップ値が欲しい。私はただ愚かであると確信しています。

4

1 に答える 1

15

case ステートメントが必要です。

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

しかし、それは私には冗長に思えます。

于 2013-03-27T17:18:07.130 に答える