sql 中排序先按某字段升序,后按某字段降序。
如有 lawyer表 字段 id name money top position
1 张三 10 1 1
2 李四 20 3 2
3 小明 5 2 0
要求先按position 升序,在按money降序 在按top降序
结果应为 id name money top position
1 张三 10 1 1
2 李四 20 3 2
3 小明 5 2 0
我这样排 order by position,money desc,top desc 为什么
结果应为 id name money top position
2 李四 20 3 2
1 张三 10 1 1
3 小明 5 2 0 展开
1.创建一个测试表
createtabletest_order2(idnumber,namevarchar2(20),moneynumber,topnumber,positionnumber);
2.ert试验数据
ertintotest_order2值(1,'zhangSAN,10,1,1);
ertintotest_order2values(2,'lisi,2031);
ertintotest_order2值(3,'晓明,50);
3、查询表记录,选择t。*,rowidfromtest_order2t;
4.编写SQL找到字母“a”的位置在表中的每条记录;也就是说,第一个以升序排序的位置,然后按照降序排列的钱,然后在顶部的降序排列;
selectt.*,rowidlocationfromtest_order2torderbyposition,moneydesc,topdesc,
1、创建测试表,
create table test_order2(id number, name varchar2(20), money number, top number, position number);
2、插入测试数据
insert into test_order2 values (1, '张三', 10, 1, 1);
insert into test_order2 values (2, '李四', 20, 3, 2);
insert into test_order2 values (3, '小明', 5, 2, 0);
3、查询表的记录,select t.*, rowid from test_order2 t;
4、编写sql,查找字母'a'在表中各记录的位置;即实现,先按position 升序,再按money降序,再按top降序;
select t.*, rowid location from test_order2 t order by position, money desc, top desc,
order by position,money desc,top desc
的意思是
position升序排列,position相等时候 按money降序排,
position,money都相等时候,按top降序排
它后面的第一个字段。
广告 您可能关注的内容 |