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

时间:2015-10-14 18:39:19

标签: sql regex bigdata google-bigquery

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

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.

1 个答案:

答案 0 :(得分:4)

尝试在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