2017-07-07 79 views
1

我的情況 - 我必須有兩個表,每個列都有幾列,我需要在這兩個表中的某些列中查找某些字符串。例如,搜索字符串可以是'ExampleString1','ExampleString2%'等,每個表格有20個字符串和大約5 - 6列。如何搜索ORACLE SQL中多列中的多個字符串SQL條款

我使用以下命令在多列中查找至少一個字符串,但這甚至不起作用。

select * from table1 a where upper('ExampleString1%') in (a.Column1, a.column2, a.column3) 

雖然我可以做一些基本的sql查詢,但我不熟悉sql。我喜歡瞭解解決方案或任何可以學習解決問題的材料。

感謝 RK

+1

如果你想使用''%作爲通配符,這句法不起作用。 '%'適用於''LIKE',而不是'IN',無論如何它都在操作員的反面。 – McGlothlin

+0

多個like和ors有什麼問題? – xQbert

回答

3

您可將所有必填字段並運行一個檢查:

select * 
from table1 a 
where NVL(upper(a.Column1),'')||NVL(upper(a.column2),'')||NVL(upper(a.column3),'') like upper('ExampleString1%') 
+2

你需要使用'||'來連接嗎?我不知道'+'會在這裏工作。 – McGlothlin

+0

不要忘記對謂詞的lhs使用to_upper。 – jeff6times7

+0

@McGlothlin:更新了我的答案。曾經是一個SQL服務器開發者:) –