How to apply non standard SQL column sort order?(如何应用非标准 SQL 列排序顺序?)
问题描述
考虑下面名为 Persons
的表格:
Consider the following table named Persons
:
Key Name Type Date Pack
1 Pocoyo KIND 30-11-2011 1
2 Erik MAN 10-10-1980 1
3 Alinda VROUW 12-12-1991 1
4 Pingu KIND 11-12-2012 1
5 Elisia KIND 11-11-2010 1
6 Kees MAN 10-11-1984 2
现在我想按Pack
、Type
和Date
对这个表进行排序,但我想要Type
要像 MAN
、VROUW
、KIND
一样排序,所以基本上想要的结果应该是:
Now I would like to sort this table on Pack
, Type
and Date
, but I would like the Type
to be sorted like MAN
, VROUW
, KIND
, so basically the desired outcome should be like:
Key Name Type Date Pack
2 Erik MAN 10-10-1980 1
3 Alinda VROUW 12-12-1991 1
5 Elisia KIND 11-11-2010 1
1 Pocoyo KIND 30-11-2011 1
4 Pingu KIND 11-12-2012 1
6 Kees MAN 10-11-1984 2
如何创建此查询?
推荐答案
试用
SELECT *
FROM Persons
ORDER BY
Pack,
CASE Type
WHEN 'MAN' THEN 1
WHEN 'VROUW' THEN 2
WHEN 'KIND' THEN 3
END,
Date ASC
MSDN:案例 (Transact-SQL)
CASE 可用于任何允许有效的语句或子句中表达.例如,您可以在语句中使用 CASE,例如SELECT、UPDATE、DELETE 和 SET,以及在 select_list 等子句中,IN、WHERE、ORDER BY 和 HAVING.
CASE can be used in any statement or clause that allows a valid expression. For example, you can use CASE in statements such as SELECT, UPDATE, DELETE and SET, and in clauses such as select_list, IN, WHERE, ORDER BY, and HAVING.
这篇关于如何应用非标准 SQL 列排序顺序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何应用非标准 SQL 列排序顺序?
基础教程推荐
- Sql Server 字符串到日期的转换 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01