DuckDB查询含#符号列名触发ParserException报错求助
解决DuckDB中含特殊字符(#)列名的语法错误问题
DuckDB不支持用方括号[]包裹含特殊字符的列名(这是SQL Server的语法)。对于包含#、-这类特殊字符的列名,必须用**双引号""或反引号``````**包裹,才能被正确解析。
修改后的查询语句(双引号版本):
select InvoiceNumber, InvoiceStatus, InvoiceSalesOrderNumber, "PatientDxICD-10Code#01", "PatientDxICD-10Code#02" from read_parquet(['https://blob_storage_name.blob.core.windows.net/blob_container_name/History/Facts/Delta_Fact_Closed_Invoices/Fact_Closed_Invoices_04092023.parquet'], hive_partitioning=false)
或者使用反引号版本:
select InvoiceNumber, InvoiceStatus, InvoiceSalesOrderNumber, `PatientDxICD-10Code#01`, `PatientDxICD-10Code#02` from read_parquet(['https://blob_storage_name.blob.core.windows.net/blob_container_name/History/Facts/Delta_Fact_Closed_Invoices/Fact_Closed_Invoices_04092023.parquet'], hive_partitioning=false)
两种写法都能让DuckDB正确识别带#的列名,双引号符合SQL标准,反引号兼容MySQL风格语法,按需选择即可。
内容的提问来源于stack exchange,提问作者Divya Nair
相关产品推荐
相关产品推荐

