首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当大小写名称与列的名称相同时,如何按列排序?

当大小写名称与列的名称相同时,如何按列排序?
EN

Stack Overflow用户
提问于 2022-07-18 20:39:04
回答 1查看 57关注 0票数 -1

我对SQL相当陌生,目前正在通过Codecademy学习。

我正在做一个CASE语句查询,但是我想通过添加一个ORDER来做一些额外的工作。

问题是:

用案例陈述将评分系统改为:考核大于4.5是非凡的,复习大于4是优秀的,复习大于3是好的,评论大于2是公平的,其他的都是差的。别忘了重新命名新列!

它给我的答案是:

代码语言:javascript
运行
复制
SELECT name,
  CASE
    WHEN review > 4.5 THEN 'Extraordinary'
    WHEN review > 4 THEN 'Excellent'
    WHEN review > 3 THEN 'Good'
    WHEN review > 2 THEN 'Fair'
    ELSE 'Poor'
  END AS 'Review'
FROM nomnom;

我想要做的是为专栏“评审”添加一个订单,但它是通过新的案例专栏“评审”来排序。如何指定要对原始列“评审”进行排序?还是必须重命名CASE列名?

我的尝试:

代码语言:javascript
运行
复制
SELECT name AS 'Name',
  CASE
    WHEN review > 4.5 THEN 'Extraordinary'
    WHEN review > 4 THEN 'Excellent'
    WHEN review > 3 THEN 'Good'
    WHEN review > 2 THEN 'Fair'
    ELSE 'Poor'
  END AS 'Review'
FROM nomnom
ORDER BY review DESC;

这将导致对CASE语句列'Review‘的顺序,而不是希望表列'review’的顺序。

如有其他建议或意见,敬请见谅!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-18 21:04:23

在ORDER子句中重复CASE表达式,但不使用名称。我知道这似乎是大量的代码和糟糕的枯燥,但它实际上只是一个复制/粘贴操作,在SQL中有许多地方,不幸的是,我们必须打破“不要重复自己”的规则。

或者我误解了,你想按列名来点菜。然后,您可以完全限定列名(ORDER BY nomnom.Review)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73028353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档