另外,还可以按降序排列,为此可以使用 DESC(降序)。
ORDER BY 子句中还可以用数字来表示对应的列 3 对应于 SELECT 中指定的第 3 列,即工资。
按从左到右的顺序依次根据 ORDER BY 子句中指定的列进行排序。
指定用于排序的列时,如果使用的是 SELECT 子句中列的数字位置,那么指定的数字不能超过 SELECT 子句中指定的列数。( 不能超出索引 )
通常,可以按 SELECT 子句中未指定的列进行排序,但必须指定列名。然而,如果在查询中使用了GROUP BY 或 DISTINCT 子句,就不能按SELECT 子句中未指定的列进行排序。
要求:显示部门编号为 10 的员工的姓名、职位和薪水,并根据薪水按从低到高的顺序排列想获得上面这样的数据结果
如果想对表中多个字段进行不同的排列如工资表按照升序排列,年龄按照降序排列
可以再ORDER之后用逗号隔开不同排列的字段
对mysql有些什么函数我也不清楚,若oracle有decode,内排序等可以做到,但有个通用的方法就是分别把111,222,333分为三个子查询然后并为一个表,附上子查询的行id,最外一层查询先按行id排序再按123排序就行。1、以日期进行排序select Rownum "ID" , 日期 , 金额, 商品 From (select 日期,金额,商品 from 表 order by 日期)
2、在排序后要求数据库中内容发生变化,如果不是考试的话是没人故意这么玩的。
任何对于数据的ID字段进行手工变动都是愚蠢而白痴的行为。
让然如果是老师故意考你们的话,可以用下面这个简单方法。
①建立临时表,使id字段为自增字段
create table tableName
(
id INT(20) not null AUTO_INCREMENT, --自增属性
日期 char(20) not null,
金额 char(5) not null,
商品 char(2) not null
)
②将排好的数据插入新建的临时表
Insert into tableName(日期,金额,商品) select 日期,金额,商品 from 原始表 order by 日期
③将原表改成其他名,并将第二步建的中间表改名为原表名
alter table 表1 rename to 表2
我手头没有mysql只能按印象写出代码,你拿去试一下吧。
我印象中mysql对pl的支持不好,所以只给出了用sql语句的方案,你参考下吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)