从表列结果中显示sql自定义文本

时间:2010-07-07 09:14:17

标签: sql oracle

让我说select score from table1。这将返回结果

score
----
0
20
40

如何使用案例,将输出更改为if 0->强烈不同意20->同意40->非常同意

4 个答案:

答案 0 :(得分:4)

我认为那就是你想要的:

select 
  case 
    when score >= 40 then 'very agreed'
    when score >= 20 then 'agree'
    else 'strongly not agree'
  end
from table1

答案 1 :(得分:4)

这是固定值的简单翻译:

select score
       , case score
              when 0 then 'strongly not agree'
              when 20 then 'agree'
              when 40 then 'very agreed'
              else 'don''t know'
         end as txt
from your_table
/

如果您正在使用范围,则语法略有不同:

select score
       , case 
              when score between 0 and 19 then 'strongly not agree'
              when score between 20 and 39 then 'agree'
              when score >= 40 then 'very agreed'
              else 'don''t know'
         end as txt
from your_table
/

ELSE分支是可选的,但我已将其包含在内以处理NULL或意外值。如果您的数据模型强制执行适当的约束,则可能不需要它。

答案 2 :(得分:2)

我不确定我是否正确理解了这个问题,但也许这就是你想要的:

select decode(score,0,'Strongly not agreed',20,'Agree',40,'Very Agreed') from table1

答案 3 :(得分:1)

case when score < 20               then 'Strongly Not Agreed'
     when score between 20 and 40  then 'Agree'
     when score > 40               then 'Strongly Agreed' end