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

标签 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 以提取结果。我在这里面临的复杂部分是我想忽略 *,_ 然后连接两个表并得到如下的最终结果。

预期结果:-

abc,1,45
abc,1,67
def,2,23
def,2,12

我尝试了什么?

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 之前转换列,以便可以进行相等 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

关于sql - 如何通过在连接子句中使用子字符串函数在 Big Query 中执行两个表之间的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33133124/

相关文章:

带有 1 个点和 2 位小数的正数的 JavaScript 正则表达式

python - 如何使用 python 正则表达式提取图像名称?

java - Hadoop的Reducer运行在哪台机器上

MYSQL 查询左连接

python - 删除字符串中重复出现的正则表达式 - Python

mysql - 如何使用具有特定值的列数对表重新排序

java - Scala - 如何返回这种 RDD 类型

python - 使用 numpy 数组高效索引 numpy 数组

sql - 为什么这个简单的 SQL 查询不起作用?

php - 使用带有 LIKE 子句的引用列