SQL里面的排序语句des别

asc和desc是SQL排序的关键字,asc是升序,desc是降序。

升序示例:按员工年龄升序查员工信息,SQL:select from employee order by age asc。

降序示例:按销售额降序看产品销量,SQL:select from sales order by amount desc。

复合排序示例:先按产品类型升序,再按价格降序,SQL:select from products order by category asc, price desc。

你自己掂量。

sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?

你发的这两个SQL语句,我看看啊... 第一个那个selectxuehaoas学号,scoreas总成绩 fromCJB where xuehaoin(selectxuehaofromXSB) groupbyxuehao,score orderbyscoredesc,xuehaoselectidas学号,sum(score)as总成绩 from成绩表groupbyidorderbysum(score)desc,idasc... 嗯?这个语句有点乱啊,orderbyscoredesc,xuehaoselectidas学号这里直接用selectidas学号好像不太对,而且两个查询好像直接拼在一起了,语法会出错的。

你看是不是想写两个分开的查询?第一个是查CJB表里学号在XSB表里的记录,按分数降序排,但最后那句selectidas学号不知道是干啥的。
第二个是查成绩表按id分组,求总分降序排,但idasc好像又重复了。

第二个那个ORDERBY说明写得还挺详细啊... ORDERBY确实是在WHERE后面用,对结果排序。
默认是ASC升序,想降序就加DESC。
关键是你说的对,ORDERBY不能用子查询里,除非带TOP或FORXML。
比如在视图或者公用表表达式里就不能直接用ORDERBY。

我之前在2 02 3 年处理一个报表需求时,就踩过这个坑。
老板要的SQL直接在子查询里加了ORDERBY,结果跑不通。
最后我们改写成外层查询排序,或者用窗口函数(如果数据库支持的话)处理。
比如用ROW_NUMBER()啥的。

所以你看你这两个语句... 第一个得修改语法错误,第二个那个ORDERBY说明是没问题的。
你要是能给我完整点上下文,比如这两个查询具体要干啥,我或许能帮你整理得更清晰。