重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以,比如有姓名列张三,李四,王五,你想按李四,王五,张三的顺序排列
公司主营业务:网站制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出平安免费做网站回馈大家。
select * from table order by case when 姓名='李四' then 1 when 姓名='王五' then 2 when 姓名='张三' then 3 end
不知道你说的是这个意思不?
ORDER BY 默认按升序排列,因此 ASC (升序)子句是可选的。
另外,还可以按降序排列,为此可以使用 DESC(降序)。
ORDER BY 子句中还可以用数字来表示对应的列 3 对应于 SELECT 中指定的第 3 列,即工资。
按从左到右的顺序依次根据 ORDER BY 子句中指定的列进行排序。
指定用于排序的列时,如果使用的是 SELECT 子句中列的数字位置,那么指定的数字不能超过 SELECT 子句中指定的列数。( 不能超出索引 )
通常,可以按 SELECT 子句中未指定的列进行排序,但必须指定列名。然而,如果在查询中使用了GROUP BY 或 DISTINCT 子句,就不能按SELECT 子句中未指定的列进行排序。
要求:显示部门编号为 10 的员工的姓名、职位和薪水,并根据薪水按从低到高的顺序排列想获得上面这样的数据结果
如果想对表中多个字段进行不同的排列如工资表按照升序排列,年龄按照降序排列
可以再ORDER之后用逗号隔开不同排列的字段
select name form T1 order by name
这个本身可以代表汉字的,是有序的,排序结果是这样的:
包含数字:有序,按照默认1234
包含字母:有序 ,按照默认abcd
包含中文,有序,按照首拼音字母默认abcd
若三种数据均存在,按照:数字字母中文 的默认顺序排序
按姓氏笔画排序无须特别设置,是按汉字姓氏字符的ASCII码值排序的。
按姓氏笔画排序,则需单独建立一个字段,自己输入姓氏的总笔画数来供排序用。
sql 使用order by 排序
select * from table order by value1,value2
根据字段value1和value2排序默认是升序
select * from table order by value1,value2 desc
按照降序排序
建议你用程序来完成。这个涉及计算列排序,排序的多重方式,各个数据库估计写法都不同。
---
如果你硬要用sql完成可以用如下方式:
记住只在mysql里能这么写。幸好你的是mysql
---------
SELECT M.class,M.AvgS,M.pm
FROM
(
SELECT A.*,@rank:=@rank+1 as pm
FROM
(
SELECT class,avg(score) as AvgS FROM test.chengji GROUP BY class ORDER BY AvgS DESC
) A ,(SELECT @rank:=0) B
) M
ORDER BY M.class
--------
pm 代表排名
---
结果类似:
class AvgS pm
-----------------------
'1', '47.0000', '1'
'2', '12.0000', '3'
'5', '38.5000', '2'
------------------------