2

如何在 Teradata 中对列名应用 LIKE 函数。我写了以下代码:

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

这不是返回我想要的结果 sb.column 是 COLUMN (带有变量值),而不是我要查找的字符串。

编辑:实际上我正在尝试在字符串中查找子字符串。我必须使用哪个功能以及如何使用?

4

1 回答 1

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 绝对不会喜欢这样 :-)

这个连接可能表明一个错误的数据模型,应该首先修复它,从而避免这样的错误连接。

于 2013-08-04T17:42:25.893 回答