如何通过在连接子句中使用子字符串函数在 Big Query 中执行两个表之间的连接

Tej*_*eja 2 regex sql bigdata google-bigquery

我从两个表中有一些输入数据,如下所示,我需要将它们连接起来以从中提取一些结果。请仔细阅读以下详细信息。如有任何意见/想法,我们将不胜感激。

Table A
ColA,ColB
abc,1
def,2



Table B
ColA,ColC
abc_,45
abc*,67
def_,23
def,12
Run Code Online (Sandbox Code Playgroud)

现在我需要在 ColA 上连接两个表 A、B 以提取结果。我在这里面临的复杂部分是我想忽略 *,_ 然后连接两个表并得到如下的最终结果。

Expected Result :-

abc,1,45
abc,1,67
def,2,23
def,2,12
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)

Fel*_*ffa 5

尝试在 JOIN 之前转换列,这样您就可以进行相等 JOIN:

SELECT cola, colb, colc
FROM [tablea] a
JOIN (
  SELECT LEFT(cola, 3) cola_x, colc
  FROM [tableb]
) b 
ON a.cola=b.cola_x
Run Code Online (Sandbox Code Playgroud)