在mssql_query中,您可以使用SELECT * FROM table ORDER BY value1 DESC, value2 DESC
之类的查询。我无法用pdo sqlsrv做到这一点。
按多列排序查询结果的正确方法是什么?
示例数据
|----------------------------------------|
| id value1 value2 |
|----------------------------------------|
| 4 119 21 |
| 2 115 17 |
| 1 114 10 |
| 3 104 21 |
|----------------------------------------|
目前他们的顺序为4,2,1,3,但它们应该是4,2,3,1。
答案 0 :(得分:1)
排序时,在第一次排序后完成的任何排序仅影响value1具有两个相同值时的排序。我创建了一个SQL Fiddle来显示排序如何影响数据的顺序。
编辑:我创建了一个second fiddle(与第一个结果相结合),显示了第一个排序列上的不同值与第二个排序列中的结果如何没有任何影响。
EDIT2:这是执行OP想做的fiddle。它将作业级别从16分组到23,并为它们分配值2,所有其他级别的值为1.然后在字符级别上排序,然后如果2个字符具有相同级别,则根据作业级别进行排序。 sqlsrv格式化的小提琴可以是found here