繁体   English   中英

SQL select 按多列的顺序排列的所有记录

[英]SQL select all records from a sequence order by multiple columns

从下表

id  firstname   lastname
1   john        smith
2   john        doe
3   john        fox
4   adam        white
5   brad        grant
6   michael     jordan
7   amy         young

select 在约翰福克斯之前如何按名字,姓氏排序? 我想出了下面,但它看起来真的很笨拙。

select * from student where firstname<'John'
union
select * from student where firstname='John' and lastname<='fox'

您似乎希望将此基于名字/姓氏的字母顺序。 这看起来很奇怪,但一种方法是:

select s.*
from student s
where firstname < 'john' or
      firstname = 'john' and lastname <= 'fox'
order by firstname, lastname;

一些数据库支持元组比较,这允许:

select s.*
from student s
where (firstname, lastname) <= ('john', 'fox')
order by firstname, lastname;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM