我的密钥在两个表中都可能略有变化,因为它们都是通过自由文本独立输入的。任何人眼都会发现它们是相同的,但是这些表格太大而无法为每种类型的不匹配创建正则表达式规则。
例如,这些应匹配:
This Is Key One
和 This is Key one
Subject:the Description
和 Subject: the Description
I am key two!
和 I am key two
如何创建此类查询? (如果在BQ中甚至可能)
答案 0 :(得分:3)
使用用户定义函数作为Zig建议的另一种方法是使用各种BigQuery string functions来清理数据。
无论您使用何种方法,您都需要在加入之前在子查询中执行此操作,或者您必须在查询之前执行此操作作为初步步骤。 BigQuery目前只支持连接谓词,它是相等比较的连接(即a.key1 = b.key1和a.key2 = b.key2等)。
答案 1 :(得分:1)
首先,您需要确定您的密钥可能相似的每种可能方式。例如,一个是忽略大小写,另一个是删除特殊字符,如"!"。你可以创建一个用户定义的函数来处理所有这些情况,以便"清理"或者"标准化"钥匙。
使用自定义函数和干净表上的查询创建一个新的干净表(并且在从那时开始添加更多行之前始终清理键)