考虑下面的表格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
Run Code Online (Sandbox Code Playgroud)
现在,我想排序该表Pack,Type并Date,但我想Type进行排序一样MAN,VROUW,KIND,所以基本上理想的结果应该是这样的:
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
Run Code Online (Sandbox Code Playgroud)
如何创建此查询?
试用
SELECT *
FROM Persons
ORDER BY
Pack,
CASE Type
WHEN 'MAN' THEN 1
WHEN 'VROUW' THEN 2
WHEN 'KIND' THEN 3
END,
Date ASC
Run Code Online (Sandbox Code Playgroud)
MSDN:CASE(Transact-SQL)
CASE可以在任何允许有效表达式的语句或子句中使用.例如,您可以在SELECT,UPDATE,DELETE和SET等语句中使用CASE,也可以在select_list,IN,WHERE,ORDER BY和HAVING 等子句中使用CASE .