Oracle DISTINCT A 排序问题(转)

请问Oracle 中有ID,A栏要怎么读出栏的不重复值,并且用ID来排序,請大家帮帮忙?

解决方案:

ID | A 
1 | x 
2 | y 
3 | x

A栏的不重复值: x, y 
但用ID來排序时 x 的 ID 应用 1 or 3 
所以Oracle 不接受 select distinct A from table order by ID

可以试试 group by 
例 以最小ID值排序

SELECT A FROM table GROUP BY A ORDER BY MIN(ID)

原理解释,由于min函数隐式的包含了一个分组函数,将分组之后的ID进行了取最大值。

例如

SELECT A FROM table GROUP BY A ORDER BY MIN(ID)就变成了对

1 | x 
2 | y 
1 | x  进行查询,得到的查询结果应该是


 y ,

SELECT A FROM table GROUP BY A ORDER BY MIN(ID)就变成了对

3 | x 
2 | y 
3 | x  进行查询,得到的查询结果应该是

y
 x

原文地址:

Oracle DISTINCT A 排序問題

时间: 2024-08-26 20:49:03

Oracle DISTINCT A 排序问题(转)的相关文章

Oracle Distinct子句

在本教程中,将学习如何使用Oracle SELECT DISTINCT语句从表中查询不同的数据. Oracle SELECT DISTINCT语句简介 在SELECT语句中使用DISTINCT子句来过滤结果集中的重复行.它确保在SELECT子句中返回指定的一列或多列的值是唯一的. 以下说明了SELECT DISTINCT语句的语法: SELECT DISTINCT column_1 FROM table_name; 在上面语法中,table_name表的column_1列中的值将进行比较以过滤重

oracle的中文排序问题

mysql中文排序有convert(name using gbk)这样的函数,于是研究了一下oracle中文排序: 使用拼音排序 SQL> select * from chineseordertest order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M'); NAME ---------------------------------------- A语言 汉文 日文 中文 使用笔画排序 SQL> select * from chineseord

oracle行号排序问题

1.创建一个student,并且插入数据 create table student(name varchar(12),age int) insert into student values('z1','1'); insert into student values('z2','6'); insert into student values('z3','2'); insert into student values('z4','3'); insert into student values('z5

Oracle varchar 字段排序问题

数据库字段: 想要的结果: 实际查询的结果: 解决方法:使用CAST函数把varchar2转为int类型 order by CAST(CODE AS INTEGER)

distinct order by 排序问题

使用类似“SELECT DISTINCT `col` FROM `tb_name` ORDER BY `time` DESC”这样的sql语句时,会遇到排序问题. 以上面的sql语句分析:order by 只是针对了获取到的uid进行了时间排序,而取到的col则是系统默认排序的. 想要order by起效果,应该使用子查询,”SELECT DISTINCT `col` FROM (SELECT * FROM `tb_name` ORDER BY `time` DESC) AS a“.

Oracle的去重函数 distinct

原贴地址:http://www.cnblogs.com/rainman/archive/2013/05/03/3058451.html#m0 SQL中distinct的用法 1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select distinct name from

深入理解Oracle中distinct关键字

distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的. distinct 会对返回的结果集进行排序,所以,最好和order by 结合使用,可以提高效率. 一.distinct 基本用法 1.用于单列  1 select distinct name from A  执行后结果如下: 2.作用于多列  1 sel

oracle排序问题

表格test数据 select * from test order by name desc 结果: 1-1:select * from ( select A.*,rownum rn from test A order by name asc ) where rn between 0 and 10 结果: 1-2:select * from ( select A.*,rownum rn from test A order by name desc ) where rn between 0 and

Oracle之视图联合查询加排序问题

在公司修改bug,有这样的需求:需要从两张视图中查出相同字段的数据,按照导师姓名先排序,再按照学号排序 union联合两张表,SELECT * from((SELECT DS_ID,PYLX_ID,YX_ID,DS_XM,XH,XM FROM PY_VIEW_YJSXX WHERE ID IN ('720c8511d1994434a55dae6f545652bc') )UNION ALL(SELECT DS_ID,PYLX_ID,YX_ID,DS_XM,XH,XM FROM PY_VIEW_ZJ