2013-08-04 28 views
2

如何在Teradata中對列名應用LIKE函數。 我寫了下面的代碼:在列上應用LIKE函數

SELECT * 
FROM sb 
LEFT JOIN asa 
ON asa.column_1 LIKE '%sb.column_2%' 

這不返回的結果我想 sb.column是COLUMN(與varible值),而不是我想查找的字符串。

編輯: 其實我試圖找到一個字符串的子字符串。我必須使用哪個功能?

回答

4

'%sb.column_2%'在asa.column_1中搜索字符串'sb.column_2'。 你可能需要

ON asa.column_1 LIKE '%' || sb.column_2 || '%' 

你也可以使用

ON POSITION(sb.column_2 IN asa.column_1) > 0 

但兩者總是會導致產品加入這將消耗大量的CPU除非至少有一個表有行數較小。你的DBA絕對不會這樣:-)

這個連接可能表示一個不好的數據模型,它應該先修復,這樣可以避免這樣的錯誤連接。

+0

謝謝!而已 – Adam