2

結合する列にわずかに異なるデータが含まれている 2 つの Oracle データベース テーブルを結合しようとしています。

たとえば、テーブル A には列「ref」があり、テーブル B には列「id」があります。

A.ref には A1234567890B のようなデータが含まれ、B.id には 1234567890 の形式のデータが含まれます。

次のクエリに基づいて、2 つを結合しようとしました。

SELECT * FROM A INNER JOIN B
ON SUBSTR(A.ref, 2,10) = B.id;

しかし、この部分文字列から一致するデータがあることがわかっている場合、これは結果を返しませんでした。

何か案は?

4

2 に答える 2

0

次のようなことを試すことができます:

SELECT * FROM A INNER JOIN B ON regexp_substr(A.ref, '^[[:alpha:]]+([[:digit:]]+)[[:alpha:]]+$',1,1,'c',1) = B.id

于 2013-09-30T14:18:57.020 に答える
0

SUBSTR(A.ref, 2,10) を 12 文字にパディングすることで、最終的にこれを解決できました。

于 2013-10-14T17:54:59.587 に答える