Ⅰ 如何把sql的表按行进行排序或进行表的行列转换
SELECT * FROM 表名 order by 排序字段名1,排序字段名2,排序字段名3
这是一个查询语句,将表的所有字段列出(SELECT * FROM 表名)并按指定的字段列表排 ( order by 排序字段名1,排序字段名2,排序字段名3)
另外,您要行列转换,几万条记录没法转换,因为一个几万行的表是可能的,几万列的表就不行了。
********************
1.一行是不能排序的。最少两行排序才有意义。
2.排序后不会前面按顺序,后面就不按顺序了,您说的情况有点怪。
3.怀疑您是否将行与列的定义搞错了?行是记录,列是字段,是这么理解的吗?
4.排序时是先按第一个排序字段排序,在第一个字段相同是,再按第二个排序字段排序,若第一个相同,第二字也相同,就按第三个排序字段排序。难道这样不合您的要求?您想怎么办?
Ⅱ sql中的排序,如何使用倒序
sql中排序倒序使用desc关键字,一般需要和order by 合用,示例sql语句如下:
例如:select * from student order by age desc;
意思是查询学生表,以学生年纪倒序排列。
排序采用 order by 子句,order by 后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序(asc),如果存在 where 子句,那么 order by 必须放到where 语句后面。
例如:select ename,job,ename from emp order by job desc,sal desc;
意思是查询员工表按照 job 和薪水倒序排序 。
(2)sql按源表排序扩展阅读
sql中升序(正序)用法介绍:
1、使用asc关键字
例如:select ename,sal from emp order by sal asc;
手动指定按照薪水由小到大排序(升序关键字 asc)
2、不加asc关键字,系统默认升序
例如:select ename,job,sal from emp where job = ”MANAGER”order by sal;
取得job 为 MANAGER 的员工,按照薪水由小到大排序(系统默
认由小到大)
Ⅲ 我想把数据库中的一个表中的数据进行排序!!!!
如果是ORACLE数据库,给你两个方案
比如你要排序的表名为"源表",有三个列"进程名","运行时间","优先级"
一、方案1:
用临时表,中间排序会在内存中进行
(在同一会话内)
1.
CREATE
GLOBAL
TEMPORARY
TABLE
临时表名
AS
SELECT
*
FROM
源表
WHERE
1=0
2.
INSERT
INTO
临时表名
SELECT
*
FROM
源表
ORDER
BY
优先级
--
排序条件
3.
DELETE
FROM
源表;
4.
INSERT
INTO
源表
SELECT
*
FROM
临时表名
ORDER
BY
优先级
5.
SELECT
*
FROM
源表
--
确认下排序后的数据
6.
COMMIT;
--
如果第5步确认后数据正确,如果不正确,就ROLLBACK
二、方案2:
非临时表,中间排序会占用磁盘存储,适用于大表(一般为百万行级以上)
1.
CREATE
TABLE
临时表名
NOLOGGING
AS
SELECT
*
FROM
源表
WHERE
1=0
其它步骤一样
Ⅳ SQL表中的数据按一定顺序排列
1、哈哈,你对现代数据库软件的管理方式的理解还不够。
2、现代的数据库软件存取数据时,在物理上是不会按某种默认的顺序的,即便内部按顺序,它取出数据展示给你时,也不会用某种固定的顺序,因为,它的做派是,先取到哪个合要求的数据就取哪个。也许,今天是这几个在前面,明天可能就是那几个在前面了。对此,你不能纠结,也不必纠结。
3、那怎么办?就让它无序的展示给我们吗?那谁受得了?!哈哈,你如果对顺序有要求,你应该“说”出来,你不说,人家怎么知道呢。现在的数据库你要按某顺序取数据,请你加上“order”指令,比如:
select
a.*
from
table_1
a
order
by
a.id
(注意上面的指令中,table_1
表中应该有id字段)
4、如果你的表中经常会用到某种顺序取出展现,在建立表时针对性加上索引会使表的查询速度得到一定的提高。
Ⅳ sql 多表 排序
如果,这两张表id,userid可作关联条件,可将两张表关联查询。
如:
select a.id,a.userid,a.title,a.time,b.id,b.userid,b.title,b.time from a,b
where a.id=b.id and a.userid=b.userid
order by a.time
Ⅵ sql排序方式要根据另一个表的某个字段排序怎么实现
可以通过两个表的关系,然后通过字段关联的形式排序。
sql:select t1.* from tablename1 t1, tablename2 t2 wehere t1.id=t2.id order by t2.name;
解释:实际上上面语句会通过 tablename2表的name字段先排序表tablename2数据,之后会通过id字段关联后,读取出id存在于tablename2表中存在的tablename1表的数据。
备注:上面表中的id字段的值肯定有相同的,如tablename1和 tablename2 表中id字段都存在值“1”,才可以有结果输出。如果两个表都没关联的话,无法实现。
Ⅶ sql中表的数据的排序方式如何修改
系统默认是以聚集索引排序,主键默认是聚集索引,也可手动改成非聚集索引,你可以添加一列标识列,就是自增列,然后把聚集索引给这列,系统就会默认按添加顺序排了
Ⅷ sql语句如何根据另一个表进行排序
select a.*
from a
left join
(
select h,count(*) as c_num
from b
group by h
)t
on a.h=t.h
order by t.c_num desc/asc以B表H字段的重复量来对A表的数据进行排序,至于是升序还是降序,楼主根据自己的需求吧