oracle查询sql语句求解

我现在有类似这么一个结果集要得到的结果是:如果:结果集里边前几行的dd,tkftm,pdeptm,rtkftm相等的话,那就显示结果集里边这几个字段相等的记录如果:结果集... 我现在有类似这么一个结果集

要得到的结果是:
如果:结果集里边前几行的dd,tkftm,pdeptm,rtkftm相等的话,那就显示结果集里边这几个字段相等的记录
如果:结果集里边第一行和第二行的tkftm,pdeptm,rtkftm不相等的话,那就只显示第一行

这个查询要怎么写?会的大神指导下我。谢谢了
写得好的追加分数!
展开
 我来答
Daisy_Hui6
2013-01-06
知道答主
回答量:12
采纳率:0%
帮助的人:9.3万
展开全部
这个我可以帮你,但是我有几个问题需要补充一下:
您在说第二个如果的时候,是否比较的列是否与第一个如果一致?
我的理解是这样的:
您是否要查询的是在查询的结果集中要将dd,tkftm,pdeptm,rtkftm 进行相同的列的记录全部显示,然后如果dd,tkftm,pdeptm,rtkftm 作为分组,其中tkftm,pdeptm,rtkftm不一致的只显示一行,但是这一行要有个排序,是按照那列为基础并且是按倒序还是降序排序显示?
这些你描述的清楚点,我可以将sql写给你。
追问
两个如果都是查询的一个结果集,列是一致的,你就把上边我给你的图当成一个表

在这个结果集中(上表中),如果前几行的几个字段一致,就显示这几行
如果我所列出的几个字段dd,tkftm,pdeptm,rtkftm第一行和第二行不同的话,显示第一行就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
随o天
2013-01-07 · TA获得超过3158个赞
知道大有可为答主
回答量:1740
采纳率:71%
帮助的人:2030万
展开全部
select rown,fltno,dd,tkftm,pdeptm,rtkftm,gate,remark from
(select rownum rown,fltno,dd,tkftm,pdeptm,rtkftm,gate,remark,
lead(dd,1)over(order by rownum) dd1,
lead(tkftm,1)over(order by rownum) tkftm1,
lead(pdeptm,1)over(order by rownum) pdeptm1,
lead(rtkftm,1)over(order by rownum) rtkftm1
from tab)
where dd=dd1 and tkftm=tkftm1 and pdeptm=pdeptm1 and rtkftm=rtkftm1 OR
((tkftm<>tkftm1 and pdeptm<>pdeptm1 and rtkftm<>rtkftm1) AND rown<2);
程序用emp表测试过。这里只是修改了表名字段名。
追问
能不能给我讲一下是什么思路?
追答
关键在这个子查询。
(select rownum rown,fltno,dd,tkftm,pdeptm,rtkftm,gate,remark,
lead(dd,1)over(order by rownum) dd1,
lead(tkftm,1)over(order by rownum) tkftm1,
lead(pdeptm,1)over(order by rownum) pdeptm1,
lead(rtkftm,1)over(order by rownum) rtkftm1
from tab)
作用是把下一行的值与当前的值并在一行上,让后再比较两个行的相关字段值是否相同。 其中lead(dd,1)over(order by rownum) 函数是比较少见的。lead(dd,n)是读下面第n行。

下面从句就是比较上下行的字段是否相同了。不相同只显示一行rowntkftm1 and pdeptmpdeptm1 and rtkftmrtkftm1) AND rown<2);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式