首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询-如何按字母顺序对部分数据进行排序,并按id对部分数据进行排序

SQL查询-如何按字母顺序对部分数据进行排序,并按id对部分数据进行排序
EN

Stack Overflow用户
提问于 2019-07-04 17:39:19
回答 3查看 63关注 0票数 1

我有一小段数据(15条记录),其中一部分按字母顺序排序,另一部分按ID排序

图1按原始顺序显示了我的数据

执行查询SELECT * FROM tableName ORDER BY code;之后

图2现在按字母顺序显示了我的数据,这很好,但我希望前两条记录按id排序

图3显示了我希望数据的外观

有人能帮我解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-04 17:56:47

我假设id是一个整数。您可以在ORDER BY子句中使用条件CASE

注意对于第一个表达式case when code in ('LUX-INT', 'LUX-CONT') then -id end desc,它将返回idNULL。由于NULLORDER BY中排在第一位,因此我使用DESC并对id值求反,以便id按升序排列

代码语言:javascript
复制
order by case when code in ('LUX-INT', 'LUX-CONT') then -id end desc, code
票数 2
EN

Stack Overflow用户

发布于 2019-07-04 17:41:33

以下情况下的用例

代码语言:javascript
复制
SELECT * FROM tableName ORDER BY case when code in ('LUX INT','LUX-CONT') then id else code end
票数 0
EN

Stack Overflow用户

发布于 2019-07-04 19:32:00

我会这样写:

代码语言:javascript
复制
order by (case when code in ('LUX-INT', 'LUX-CONT') then 1 else 2 end),   -- put the special codes first
         (case when code in ('LUX-INT', 'LUX-CONT') then code end),       -- order them alphabetically
         id                                                               -- order the rest by id

这与基础列的类型和排序规则无关。

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

https://stackoverflow.com/questions/56885030

复制
相关文章

相似问题

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