2013-11-21 18 views
0

我目前使用SQL ON JOIN LIKE(之前最後3個字符%)

Left OUTER JOIN TableB ON TableA.ID = TableB.IDNumber

所以ID和IDNumbers是12位數字,例如607120670001和僅0001變化。

我只對匹配前8個字符/數字感興趣。例如60712067%

數據

TableA    TableB 
607120670001  607120670002   (Match) 
507120670001  507120670001   (Match) 
123456780001  123456790001   (Not Match) 

我怎樣才能做到這一點?

+0

哪些數據類型是那些列? –

回答

4

使用TRUNC()函數,使4個最後一位數字等於0000

Left OUTER JOIN TableB ON trunc(TableA.ID, -4) = trunc(TableB.IDNumber, -4) 
+0

Lifesaver和非常簡單的解決方案,謝謝。 – user206168

2

,或者,如果再定義爲VARCHAR

Left OUTER JOIN TableB 
ON TableA.ID LIKE SUBSTR(TableB.IDNumber,0,8) || '%' 
+0

如果它不是一個varchar,它可以通過使用'to_char()'變成一個 –