отображать пользовательский текст sql из результата столбца таблицы - PullRequest
0 голосов
/ 07 июля 2010

скажем, я делаю select score from table1.это вернет результат

score
----
0
20
40

как использовать case, чтобы изменить вывод на если 0-> полностью не согласен 20-> согласен 40-> очень согласен

Ответы [ 4 ]

4 голосов
/ 07 июля 2010

Это простой перевод фиксированных значений:

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 не обязательна, но у меня естьвключил его для обработки пустых значений или неожиданных значений.Если ваша модель данных предусматривает соответствующие ограничения, она может вам не понадобиться.

4 голосов
/ 07 июля 2010

Я думаю, это то, что вы хотите:

select 
  case 
    when score >= 40 then 'very agreed'
    when score >= 20 then 'agree'
    else 'strongly not agree'
  end
from table1
2 голосов
/ 07 июля 2010

Я не уверен, правильно ли я понимаю вопрос, но, возможно, это то, что вы хотите:

select decode(score,0,'Strongly not agreed',20,'Agree',40,'Very Agreed') from table1
1 голос
/ 07 июля 2010
case when score < 20               then 'Strongly Not Agreed'
     when score between 20 and 40  then 'Agree'
     when score > 40               then 'Strongly Agreed' end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...