oracle DB - 加入凌乱的字符串

时间:2017-09-22 10:24:57

标签: sql regex oracle

我正在尝试在oracle中加入两个表:

表1

{ ! id "alice" && echo "alice absent." } || { ! id "bob" && echo "bob absent." } || { ! id "walter" && echo "walter absent." }

表2

absent=false
for user in alice bob walter ; do
   ! id "$user" && echo "$user is absent." && absent=true
done
$absent || echo "All users are present."

我想使用尽力而为匹配将表2连接到表1。 BUG_ID总是7个数字,表1中的URL是一个字符串,但我很高兴只使用“有效”字符串,这是一个以以下结尾的URL:

Jira ID|bugz url(string)
-------|---------
1234   |http-url-897654
1235   |http-url-158974
1236   |http-url-158975\nhttp-url-158972

2 个答案:

答案 0 :(得分:4)

怎么样:

select ...
  from table1
       join table2
            on substr(table1.bugz_url, -7) = to_char(table2.bug_id);

答案 1 :(得分:2)

如果您正在寻找 url ,请说

  http(s): ... ?id=7_DIGITS_BUG_NUMBER

如果是Oracle,您可以尝试正则表达式regexp_substr

   select ...
     from table1 join table2
       on regexp_substr(table1.bugz_url, '^https?:.*\?id=([0-9]{7})$', 1, 1, null, 1) =
           to_char(table2.bug_id)