sql按多列顺序从序列中选择所有记录

1sbrub3j  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(304)

从下表

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

如何在john fox按firstname和lastname排序之前选择所有人?我想到了下面,但它看起来真的很笨拙。

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

m0rkklqb1#

你似乎想根据名字/姓氏的字母顺序来确定。这似乎很奇怪,但有一种方法是:

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;

相关问题