在使用Upsolver SQLake时,如果我的源表中有100个列,并且我希望将其中的大多数列包含在转换中,但排除了一些列,那么我可以这样做,而不必显式地映射转换SQL中的每个列吗?
例如,如果我的源表有5列(col1、col2、col3、col4、col5),并且在转换中我不想包含col3。我可以使用以下SQL:
从源代码中选择col1、col2、col4、col5
但是,如果我的源表有1000列,那么如果我不必输入999列,我宁愿不必键入999列。
我正在寻找一个生成SQL的选项,或者一些从转换中排除某些列的选项。
发布于 2022-11-23 15:21:49
SQLake支持转换作业定义中的job参数。转换SQL将被计算,但是除了引用中的列将被排除在目标表中。
CREATE JOB insert_all_columns_except_col3
START_FROM = NOW
ADD_MISSING_COLUMNS = TRUE
RUN_INTERVAL = 1 MINUTE
AS INSERT INTO target_table MAP_COLUMNS_BY_NAME EXCEPT col3
SELECT *
FROM source_table
WHERE $commit_time BETWEEN RUN_START_TIME() and RUN_END_TIME();在本例中,"source_table“中的所有列都将被写入"target_table”,但col3除外。
https://stackoverflow.com/questions/74549090
复制相似问题