试试这个 select qlr_mc from table_name A,table_name B where A.zc_id = B.zc_id and A.zq_dm = B.zq_dm and A.rowid<> B.rowid
错了,这个应该可以: SELECT qlr_mc FROM TABLE_NAME GROUP BY zc_id,zq_dm
SELECT * FROM TABLE_NAME T1 WHERE EXISTS (SELECT T2.zc_id,T2.zq_dm,min(rowid) FROM TABLE_NAME T2 GROUP BY T2.zc_id,T2.zq_dm having min(rowid) = T1.rowid) );
18:32:03 SQL> create table testsql 18:32:51 2 (qlr_mc char(10), zd_id char(10), zq_dm char(10));Table created.Elapsed: 00:00:00.00 18:33:45 SQL> insert into testsql values ('hj','26','104');1 row created.Elapsed: 00:00:00.00 18:34:35 SQL> insert into testsql values ('ds','26','104');1 row created.Elapsed: 00:00:00.00 18:34:56 SQL> select * from testsql;QLR_MC ZD_ID ZQ_DM ---------- ---------- ---------- hj 26 104 ds 26 104Elapsed: 00:00:00.0018:36:20 SQL> select * from testsql t1 where exists (select zd_id,zq_dm,min(rowid) from testsql t2 18:36:33 2 group by zd_id,zq_dm having min(rowid) = t1.rowid );QLR_MC ZD_ID ZQ_DM ---------- ---------- ---------- hj 26 104
select * from tb where rowid in ( select min(rowid) from tb group by zd_id,zq_dm )
楼上的这个 select * from tb where rowid in ( select min(rowid) from tb group by zd_id,zq_dm )肯定行
or try:select a.* from tb a,(select max(rowid) rid from tb group by zd_id,zq_dm) b where a.rowid=b.rid
select * from tb where rowid in ( select min(rowid) from tb group by zd_id,zq_dm )这个是通常用的方法.如果知道zd_id,zq_dm , 可以再加上限制条件. 否则请加上索引zd_id,zq_dm
--------------------------------- qlr_mc | zd_id | zq_dm | 环境 | 26 | 104 | 大厦 | 26 | 104 | ---------------------------------select max(qlr_mc) as qlr_mc from table_name group by zd_id,zq_dmorselect qlr_mc from table_name where rowid = (select max(rowid) from table_name group by zd_id,zq_dm)
--------------------------------- qlr_mc | zd_id | zq_dm | 环境 | 26 | 104 | 大厦 | 26 | 104 | ---------------------------------select max(qlr_mc) as qlr_mc from table_name group by zd_id,zq_dmorselect qlr_mc from table_name where rowid in (select max(rowid) from table_name group by zd_id,zq_dm)
SELECT max(qlr_mc),zc_id,zq_dm FROM TABLE_NAME GROUP BY zc_id,zq_dm
select qlr_mc from table_name where zd_id = 26 and zq_dm = 104 and rownum = 1;
select qlr_mc from table_name A,table_name B
where A.zc_id = B.zc_id and A.zq_dm = B.zq_dm and A.rowid<> B.rowid
SELECT qlr_mc FROM TABLE_NAME
GROUP BY zc_id,zq_dm
GROUP BY T2.zc_id,T2.zq_dm having min(rowid) = T1.rowid) );
18:32:51 2 (qlr_mc char(10), zd_id char(10), zq_dm char(10));Table created.Elapsed: 00:00:00.00
18:33:45 SQL> insert into testsql values ('hj','26','104');1 row created.Elapsed: 00:00:00.00
18:34:35 SQL> insert into testsql values ('ds','26','104');1 row created.Elapsed: 00:00:00.00
18:34:56 SQL> select * from testsql;QLR_MC ZD_ID ZQ_DM
---------- ---------- ----------
hj 26 104
ds 26 104Elapsed: 00:00:00.0018:36:20 SQL> select * from testsql t1 where exists (select zd_id,zq_dm,min(rowid) from testsql t2
18:36:33 2 group by zd_id,zq_dm having min(rowid) = t1.rowid );QLR_MC ZD_ID ZQ_DM
---------- ---------- ----------
hj 26 104
(
select min(rowid) from tb group by zd_id,zq_dm
)
select * from tb where rowid in
(
select min(rowid) from tb group by zd_id,zq_dm
)肯定行
(
select min(rowid) from tb group by zd_id,zq_dm
)这个是通常用的方法.如果知道zd_id,zq_dm , 可以再加上限制条件.
否则请加上索引zd_id,zq_dm
qlr_mc | zd_id | zq_dm |
环境 | 26 | 104 |
大厦 | 26 | 104 |
---------------------------------select max(qlr_mc) as qlr_mc from table_name group by zd_id,zq_dmorselect qlr_mc from table_name where rowid = (select max(rowid) from table_name group by zd_id,zq_dm)
qlr_mc | zd_id | zq_dm |
环境 | 26 | 104 |
大厦 | 26 | 104 |
---------------------------------select max(qlr_mc) as qlr_mc from table_name group by zd_id,zq_dmorselect qlr_mc from table_name where rowid in (select max(rowid) from table_name group by zd_id,zq_dm)
GROUP BY zc_id,zq_dm