如果是只显示一条,可以试试这个:select * from mytable where rowid in (select min(rowid) from mytable group by message_id );但是,不能保证取到的是第一条满足条件的值。 估计要用存储过程了~~
利用rownum: select m.message_id, dept from (select message_id,dept,rownum row_id from mytable) m , (select message_id,min(rownum) row_id from mytable group by message_id) p where m.message_id=p.message_id and m.row_id=p.row_id
select a.* from mytable a, ( select min(rowid) no from mytable group by message_id ) b where a.rowid=b.no;
select * from mytable A where A.rowid > (select min(B.rowid) from mytable B where A.message_id = B.message_id)
select message_id,min(dept) from mytable group by message_id
而楼上的是message_id相同,并且dept也相同就显示一条
如果是只显示一条,可以试试这个:select * from mytable where rowid in (select min(rowid) from mytable group by message_id );但是,不能保证取到的是第一条满足条件的值。
估计要用存储过程了~~
select
m.message_id,
dept
from
(select message_id,dept,rownum row_id from mytable) m ,
(select message_id,min(rownum) row_id from mytable group by message_id) p
where
m.message_id=p.message_id
and m.row_id=p.row_id
(
select min(rowid) no from mytable group by message_id
) b
where a.rowid=b.no;