日期:2014-05-17  浏览次数:20990 次

oracle中sql统计clob
现有表A,字段分别为(examid,userlist),userlist是Clob类型,意思是考试ID=1800,这个考试安排的考生的编号有3,99,100,121,155......
表B,里面是考试结果:
userid,score
3,100
121,95
155,49

99没有参加考试,没有记录。
想关联出结果
examid,userid,score
1800,3,100
1800,121,95

examid是数字型,而userlist是CLOB型的,(这个库是先前别人的,我来负责做统计)
请问如何写sql ?
SQL Oracle CLOB

------解决方案--------------------
如果clob内容都少于4000(有可能最多2000),可以用to_char转成varchar2
select a.examid,b.userid,b.score from a,b where
  ','
------解决方案--------------------
to_char(a.userlist)
------解决方案--------------------
',' like '%,'
------解决方案--------------------
b.userid
------解决方案--------------------
',%'

如果clob超大的,只能自定义函数去处理了
select a.examid,b.userid,b.score from a,b where
  f_include_user(a.userlist, b.userid)>0


------解决方案--------------------
使用DBMS_LOB吧