我有一张类似
的表格STUDENTNAME ISMANUALLYADDED ISEDITED
----------- --------------- --------
APPLE 0 0
ANT 0 1
BELL 0 0
DOLL 1 0
在这里,我尝试先按studentname
排序,然后按ismanuallyadded
排序,再按isedited
排序。我期待结果像
StudentName
-----------
APPLE
BELL
DOLL
ANT
为此,我想尝试,
select studentname from table1
order by studentname, ismanuallyadded, isedited
但是,此查询会给出结果,如
Student
-------
APPLE
ANT
BELL
DOLL
是否可以先按studentname
订购,然后按ismanuallyadded
......
任何人都可以帮助我,提前谢谢。
尝试的是,我应该按字母顺序显示所有学生姓名(manually added
或isedited
),然后只有ismanuallyadded
名学生应该来,然后isedited
。
答案 0 :(得分:13)
order by
中的第二个条件仅在不同行在先前条件中具有相同值时使用。
您的行都有不同的studentname
值,因此永远不会使用第二个和第三个标准。
试试这个:
select studentname from table1
order by isedited, ismanuallyadded, studentname
答案 1 :(得分:1)
试试这个
select studentname from table1
order by studentname ASC, ismanuallyadded ASC, isedited ASC
答案 2 :(得分:1)
如果你想要你指定的结果,你可以通过ismanuallyadded和然后 studentname进行排序,而不是相反。
从table1中选择studentname 通过ismanuallyadded,studentname,isedited订购。
您当前的查询说:按学生名称排序,然后如果两行的学生名相同,则按顺序添加。你似乎想说ismanuallyadded,然后对于所有具有相同ismanuallyadded状态的人,给我那些由studentname排序的结果。
答案 3 :(得分:1)
要排序的第二个字段仅在第一个字段中找到具有相同值的多个条目时使用。你没有这种情况,所以它应该只按第一个字段排序(它应该在APPLE之前产生ANT ......)
您的预期结果将通过排序顺序来实现 按顺序排列,ismanuallyadded,studentname