Azure Synapse中如何在OPENROWSET的WITH块内重命名文件列名
问题解答
可以在OPENROWSET的WITH代码块中直接完成列名清洗,不需要依赖后续的SELECT别名或者视图封装。
你可以通过指定列序号绑定原文件字段的方式实现,WITH子句中自定义的列名会直接作为查询返回的列名,完全不需要匹配原文件的不规范表头命名,实现读取阶段就完成列名标准化。
改造后的参考代码如下:
SELECT TOP 10 * FROM OPENROWSET( BULK 'path_to_file.csv' FORMAT = 'CSV' PARSER_VERSION = '2.0' FIRSTROW = 2) WITH ( -- 语法:清洗后的规范列名 数据类型 对应原CSV的列序号(从1开始计数) order_id varchar(50) 1, customer_name varchar(100) 2, order_amount decimal(18,2) 3 -- 剩余需要读取的列按上述规则依次定义即可 ) as rows
注意事项
- 列序号需要和原CSV文件的字段物理顺序一一对应,和原表头的命名无关联
- 如果未指定列序号,WITH子句中的列名需要和原文件表头完全匹配,就会出现你原来代码中需要写
[ORDER ID]这种不规范命名的情况
内容的提问来源于stack exchange,提问作者mikebmassey
相关产品推荐
相关产品推荐

