2013-03-27 94 views
0

目前,我有一個查詢,看起來有點像這樣:連接2個或更多列並在LIKE謂詞中使用?

select * from person 
where person.firstname LIKE '%firstname_fragment%' OR 
     person.lastname LIKE '%lastname_fragment%' 

你如何加入兩列到SQL WHERE謂詞這確實是這樣的呢?

person.firstname + person.lastname LIKE '%firstname_fragment 
lastname_fragment%' 

回答

1

不在Oracle中。這將是SQL Server語法。你想:

where person.firstname || ' ' || person.lastname LIKE '%firstname_fragment lastname_fragment%' 

我增加了空間,因爲你必須在模式參數的空間like

還有一條評論。這與你在問題中的查詢不同。等價查詢更類似於:

select * from person 
where person.firstname LIKE '%firstname_fragment%' AND 
     person.lastname LIKE '%lastname_fragment%' 
+0

我同意添加空間,我只是可以在名字的末尾添加%並且在最後名字片段的開始處留下空間以匹配第一個查詢 - - 雖然取決於OP的需求。 – sgeddes 2013-03-27 20:21:54