在ITPUB上有一则非常巧妙的SQL技巧 学习一下 记录在这里
最初的问题是这样的:
我有一个表结构 fphm kshm
(第二个字段内可能是连续的数据 可能存在断点 )
怎样能查询出来这样的结果 查询出连续的记录来 就像下面的这样?
ITPUB上的朋友给出了一个非常巧妙的答案:
SQL>SELECT b fphm MIN (b kshm) Start_HM MAX (b kshm) End_HM FROM (SELECT a * TO_NUMBER (a kshm ROWNUM) cc FROM (SELECT * FROM t ORDER BY fphm kshm) a) b GROUP BY b fphm /
FPHM START_HM END_HM
巧思妙想 就在一念之间 lishixinzhi/Article/program/Oracle/201311/17496如何查询oracle数据库一个表中的很多条记录是否有重复?重复的判断标准是指定为几个字段中只要有任意的一个字段中有重复就将重复的记录列出来。
Select * From Table1 a
Where Exists (
Select * from Table1
where id=a.id
Group By ID
Having Count(*) > 1 //查出两条以上的记录
)
or:
Select * From Table1
Where id in (
Select id from Table1
Group By ID
Having Count(*) > 1 //查出两条以上的记录
)
or:
Select * From yourtable A
Where (Select count(*) From yourtable Where Field1=A.Field1)>1
or (Select count(*) From yourtable Where Field2=A.Field2)>1
or (Select count(*) From yourtable Where Field3=A.Field3)>1 ...
Order By A.Field1,Field2,Field3 ...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)