Azure流作业SQL查询:如何替换字符串列并覆盖原返回列?
解决Azure流作业中替换列内容并覆盖原列的问题
在SQL里用SELECT *再重复定义同名列的方式行不通,因为*会把原始的stringCol也包含进来,结果集里会出现两个stringCol(一个原始、一个替换后的),而流作业不会自动覆盖原列,只会保留原始列或者引发列名冲突。
要实现你需要的效果,必须显式列出所有列,把需要替换的目标列用REPLACE函数处理,不再使用*。举个实际示例:
假设你的[input]表包含col1、col2、stringCol、dateTimeColumn这些列,对应的查询语句应修改为:
SELECT col1, col2, REPLACE(stringCol, '/', '_') AS stringCol, dateTimeColumn INTO [output] FROM [input] TIMESTAMP BY dateTimeColumn
这样输出结果里的stringCol就是替换后的内容,其他列保持与源数据一致,全程不会改动源数据,完全符合你的需求。
内容的提问来源于stack exchange,提问作者William D'Alessandro
相关产品推荐
相关产品推荐

