用例看起来很简单。。。。作为复制活动的一部分,生成一条sql语句,该语句包括一个硬编码的列列表,还连接到参数提供的数据库和表名(因为数据库和表名称可以在dev/test/prod等环境中更改(。
问题是……如果使用concat函数,它会将每个逗号视为要连接的新值。我希望有一种方法可以摆脱逗号,并将其视为一个值,但我尝试过的都不起作用。
例如。。。。连接以下字符串。。。。SELECT event_date,event_timestamp,(SELECT value.string_value FROM UNNEST(event_params(WHERE key='page_title'(AS page_title来自到…pipeline((。parameters.Database_Nm+.+pipeline((.参数.Table_Nm
解决方法是引用每一行的开头和结尾,这样逗号就被视为数据,所以每一列/每一行都是一个单独的串联,比如。。。。
@concat('SELECT event_date,','(SELECT value.string_value FROM UNNEST(event_params(WHERE key='page_title'(AS page_title,','from',pipeline((。parameters.Database_Nm,'.',pipeline((.参数.Table_Nm
这很管用。。。但我有一百多个专栏,所以这只是一个有点愚蠢的解决方案。我是不是错过了一个更简单的方法?TIA!
当大部分字符串都是硬编码的而不是表达式时,可以使用以下字符串插值表达式格式:
SELECT event_date,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title
from @{pipeline().parameters.Database_Nm}.@{pipeline().parameters.Table_Nm}