我有两个表,假设表A有10行,表B有100行,我想要进行连接操作,但匹配条件必须是“类似于”B表中的一列,这意味着在B表中该列前后可以出现任何内容。
举个例子:如果A表中的列是'foo'。那么如果B表中的列为'fooblah'、'somethingfooblah'或'foo',则连接将匹配。我知道如何在标准like语句中使用通配符,但在连接时却感到困惑。这有意义吗?谢谢。
以下代码无效:
举个例子:如果A表中的列是'foo'。那么如果B表中的列为'fooblah'、'somethingfooblah'或'foo',则连接将匹配。我知道如何在标准like语句中使用通配符,但在连接时却感到困惑。这有意义吗?谢谢。
以下代码无效:
SELECT *
FROM TABLE a JOIN
TABLE b
ON b.column LIKE CONCAT('%', a.column, '%');
例子:
Table A
+-------+
| MYCOL |
+-------+
| foo |
| foo |
| bar |
| bbb |
| bar |
+-------+
Table B
+------------------+
| MYCOL |
+------------------+
| fooblah |
| somethingfooblah |
| foo |
| barblah |
| somethingbarblah |
| bar |
+------------------+
Result:
+-------+------------------+
| MYCOL | MYCOL |
+-------+------------------+
| foo | fooblah |
| foo | somethingfooblah |
| foo | foo |
| -- | test |
| bar | somethingbarblah |
| bar | bar |
+-------+------------------+
CONCAT()
函数的任何数据库。也许Hana SQL有特定的限制。 - Gordon Linoff