oracle clob去重复,oracle sql clob查询重复数据,多字段-Oracle

oracle sql clob查询重复数据,多字段

COMPARE 函數

clob字段在查询时是无法 group by 和 distinct 的,所以如果要根据clob查找重复的数据是很麻烦的,网上大多提出要用DBMS_LOB.SUBSTR 来解决,DBMS_LOB.SUBSTR 把clob转换成字符串段再进行group by,而且如果字数太多还得分段转换,这样操作起来太麻烦,而且容易出现 字符串缓冲区太小 的错误,在网上搜了好久,突然发现 Dbms_Lob.Compare 可以解决这个问题。

COMPARE 函數

COMPARE 函數會對給定偏移的給定長度的兩個大型物件,執行確切的逐位元組比較。

此函數傳回:

零,如果兩個大型物件於指定偏移的指定長度完全相同

非零,如果物件不相同

空值,如果 amount、offset_1 或 offset_2 小於零。

比較的大型物件的資料類型必須相同。

以下,是我最终的sql,remark是clob字段

1

Select * From Userinfo Where Id In(

2

Select U.Id From Userinfo U,Userinfo User_Info

3

Where U.Id!=User_Info.Id

4

And U.Typeid=User_Info.Typeid

5

And u.theTime=User_Info.theTime

6

And u.createId=User_Info.createId

7

And Dbms_Lob.Compare(u.Remark,User_Info.Remark)=0

8

Group By u.Id

9

)Order By id;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值