wang4382 2011-09-01 16:17 采纳率: 0%
浏览 355
已采纳

求前辈们帮忙解决一下sql问题

table1

字段名
user_Arr id

12,34,56,66 1

34,56 2

table2

字段名
user_Id

12
34
56

select user_id from table2 where user_id in (select user_arr from table1 where id =1)
希望达到这种效果,该处理table1的字段值?
select user_id from table2 where user_id in ('12,34,56,66')

  • 写回答

17条回答 默认 最新

  • rainbow702 2011-09-01 17:13
    关注

    我以前做过oracle 中的 split 功能,它是通过正则表达式来进行实现的(当然你也可以写个函数来搞定)。
    [quote]
    select dbms_lob.substr
    (regexp_substr('abc,def,ggg,1,2,3,4,5', '[^,]+', 1, x.n))
    as player_guid

    from dual a,
    (select rownum n from dual connect by rownum < 100) x

    这里利用了函数 regexp_substr和connect by
    其中rownum < 100 会连接限制split的次数 '[^,]+'为split拆分的正则表达式,这里为【,】逗号。
    [/quote]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(16条)

报告相同问题?