区域赋值问题

我有一组数据,当3<R<=10时,R为A,当10<R<=20时R为B,当20<R<=30时R为c ,iv 30<R时,R为D,请问如何写SQL语句。

FineReport zrh197218 发布于 2018-11-26 12:03
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
zsh331Lv8专家互助
发布于2018-11-26 13:19
SELECT
    (
        CASE
            WHEN 3<R<=10
            THEN 'A'
            WHEN 10<R<=20
            THEN 'B'
            WHEN 20<R<=30
            THEN 'C'
            WHEN R>30
            THEN 'D'
            ELSE '小于等于3的情况值'
        END ) AS R
FROM
    TABLE


补充: 

一楼SQL有个很明显的BUG~会把"小于等于3"和"大于30"的值全部赋值为D...题意是"当R>30时,才为D"

最佳回答
1
邱利Lv2见习互助
发布于2018-11-26 12:38

select (case when 3<R<=10 then  'A'

             when 10<R<=20 then 'B'

             when 20<R<=30 then 'C'

              else 'D' end ) as R from table

最佳回答
0
axingLv6专家互助
发布于2018-11-26 13:52
SELECT
        CASE
            WHEN R>3 AND R<=10 
            THEN 'A'
            WHEN R>10 AND R<=20
            THEN 'B'
            WHEN R>20 AND R<=30
            THEN 'C'
            WHEN R>30
            THEN 'D'
            ELSE '其他'
        END AS R
FROM
    TABLE


  • 4关注人数
  • 614浏览人数
  • 最后回答于:2018-11-26 13:52
    请选择关闭问题的原因
    确定 取消
    返回顶部