【发布时间】:2016-01-13 00:02:20
【问题描述】:
我有一些来自两个表的输入数据,如下所示,我需要将它们连接起来以从中提取一些结果。请仔细阅读以下详细信息。任何输入/想法将不胜感激。
Table A
ColA,ColB
abc,1
def,2
Table B
ColA,ColC
abc_,45
abc*,67
def_,23
def,12
现在我需要连接 ColA 上的两个表 A、B 以提取结果。我在这里面临的复杂部分是我想忽略 *,_ 然后加入两个表并得到如下最终结果。
Expected Result :-
abc,1,45
abc,1,67
def,2,23
def,2,12
What I have tried?
SELECT A.ColA AS ColA,
A.ColB AS ColB
B.ColC AS ColC
FROM TableA A
JOIN EACH
TableB B
ON A.ColA = B.ColA;
-- SUBSTR( B.ColA, 1, LENGTH( A.ColA ) )
Comments :- The above join clause using SUBSTR function is not supported in Big Query.
【问题讨论】:
-
JOIN ... ON B.ColA LIKE A.ColA + '%' ...或JOIN ... ON B.ColA LIKE CONCAT(A.ColA , '%' ) -
JOIN条件是ON A.ColA = SUBSTR( B.ColA, 1, LENGTH( A.ColA ) )吗? -
@SOaddict 你试过
LIKE吗? -
尝试在 ON 子句中使用 LIKE 运算符。我得到以下错误 ON 子句必须是 AND of = 每个表中一个字段名的比较,所有字段名都以表名为前缀。
-
一种非常低效的方法是交叉连接两个表并在 WHERE 中使用 SUBSTR/LIKE 进行过滤
标签: sql regex bigdata google-bigquery