2012-07-13 75 views
0

在varchar2字段(table1.field1)中,我有這樣的: ; number1; number2; .......; numberN;Oracle:IN語句的格式字符串

我想在IN語句中使用這個值,是這樣的:

SELECT * FROM table2 WHERE table2.field2 IN table1.field1 
+0

問題尚不清楚..你想用數字1,數字做什麼..什麼是table1.field1 – hkutluay 2012-07-13 14:38:07

+0

你必須申請正則表達式,從該字符串得到的數字。 – 2012-07-13 14:38:50

+0

在Table1的Field1中存儲一個varchar2字符串,如下所示:「; number1; number2; .....; numberN;」 number1,number2,... numberN是數字。我想通過Table1.Field1中的數字篩選Table2中的選擇項。例如: SELECT * FROM TABLE2 WHERE TABLE2.FIELD2 IN(數字在我的TABLE1.FIELD1中) – gUIDo 2012-07-13 16:00:30

回答

1

如果table2.field2的值是一樣 NUMBER1
數字2串

那就試試這個:

SELECT * 
    FROM table2 
WHERE EXISTS 
    (
     SELECT 1 
      FROM table1 
     WHERE table1.field1 LIKE '%;' || table2.field2 || ';%' 
    ) 

如果table2與table1.field1中的內容相似,那麼試試這個:

SELECT * 
    FROM table2 
WHERE field2 IN 
    (
     SELECT field1 
      FROM table1 
    ) 
+0

謝謝Chandu,第一個解決方案就是我所需要的! – gUIDo 2012-07-13 15:01:30