Google bigquery 0'|'cd035'|'cd120' “事件1”|“cd020”|“cd035”|“cd120” “事件1”|“cd020”|“cd035”|“cd120”

Google bigquery 0'|'cd035'|'cd120' “事件1”|“cd020”|“cd035”|“cd120” “事件1”|“cd020”|“cd035”|“cd120”,google-bigquery,Google Bigquery,而不是每次找到事件“event_1”时返回存储在cd020、cd035或cd120列中的值 是否有人知道一种方法来取消引用这些内部查询的结果,以便在执行外部查询时,将它们转换为列名,从而使“cd020”变为cd020 附言:如果有人知道的话,我也愿意接受完全不同的策略。听起来像是一个可能有用的案例。我不确定我是否完全理解映射,但它应该允许您根据矩阵表编写动态语句 但是,根据描述,不清楚生成的查询可能有多笨拙,因为您提到有数百种此类事件,并且可能会遇到其他问题,例如查询复杂性或长度限制。我使用@s

而不是每次找到事件“event_1”时返回存储在cd020、cd035或cd120列中的值

是否有人知道一种方法来取消引用这些内部查询的结果,以便在执行外部查询时,将它们转换为列名,从而使“cd020”变为cd020

附言:如果有人知道的话,我也愿意接受完全不同的策略。

听起来像是一个可能有用的案例。我不确定我是否完全理解映射,但它应该允许您根据矩阵表编写动态语句


但是,根据描述,不清楚生成的查询可能有多笨拙,因为您提到有数百种此类事件,并且可能会遇到其他问题,例如查询复杂性或长度限制。

我使用@shollyman推荐的EXECUTE IMMEDIATE子句解决了这个问题。我只为其中一个事件做了这个,但我相信这回答了最初的问题,将它扩展到其他事件只是编写一个WHILE循环的问题。我将一步一步地进行,因为我没有使用实际的排斥

第一步,我声明了一个名为event的变量,其中包含查询需要查找的事件的名称

声明事件字符串默认值“event_1”; 然后我声明了一个变量,该变量保存了查询需要在其中查找变量的列名

声明变量\名称字符串默认值从矩阵中选择变量\ 1,其中事件\名称=事件; 然后,我像往常一样编写了查询,但使用了executeimmediate子句。我使用了三个双引号,这样我就可以把它分成几行,以便于阅读

立即执行CONCAT 选择 当事件名称=',事件',然后,变量名称,结束为变量1时的情况 来自带有脏数据的表 其中event_name=',event,' ;
如果其他人要用这个,请注意我在一些三重双引号之前或之后使用的单独单引号。我这样做是因为,例如,声明的变量事件,即使它是一个字符串,似乎作为事件连接在一起,周围没有单引号,这会中断查询执行。

我可以向您推荐更好的方法,但您能否提供几行示例数据和预期输出?你想为每个事件单独设置一个表吗?@SabriKaragönen我已经编辑了这个问题。希望现在更清楚了。真的很期待听到不同的方式。谢谢