网上SQL问题连载6

问题出处:http://www.oracle.com.cn/viewthread.php?tid=146091&extra=page%3D2

 

求高手一个PL/SQL 语句的写法

表A的数据:
1 a b c
1 a b d
2 a b c
3 a b c
3 a b b
4 a b c
4 a b d
5 a b c

数据中, 第一列id表示组,id 为1与 id为4的数据完全相同, id为2及id为5的数据也完全相同
求删除语句的写法, 即删除数据中与其它组数据完全相同的数据, 示例中要删除 id=4或1 及 id=5或2的行

 

 

  1. DELETE FROM A  
  2.  WHERE A.ID IN (SELECT TOP_TMP.ID  
  3.                   FROM (SELECT TMP_TABLE.ID,  
  4.                                ROW_NUMBER() OVER(PARTITION BY TMP_TABLE.TMP_COL ORDER BY TMP_TABLE.ID) AS RN  
  5.                           
  6.                           FROM (SELECT T.ID,  
  7.                                        WM_CONCAT(T.C1 || T.C2 || T.C3) AS TMP_COL  
  8.                                   FROM A T  
  9.                                  GROUP BY T.ID) TMP_TABLE) TOP_TMP  
  10.                  WHERE TOP_TMP.RN ^= 1  
  11.                 )  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值