Databricks中列名含$符号致SQL命令报错的解决方法咨询
解决SQL中含$符号的字段名报错问题
在SQL里,当字段名包含$这类特殊字符时,数据库引擎会把它误判成语法元素(比如变量占位符),直接执行就会报错。解决办法是用对应数据库支持的标识符包裹符,把带特殊字符的字段名标记为合法的标识符:
MySQL、Hive、Spark SQL等:用反引号(`)包裹字段名
修改后的SQL代码:select from_unixtime(date.`$date`/1000) as date from blablaPostgreSQL、SQL Server(标准模式):用双引号(")包裹字段名
修改后的SQL代码:select from_unixtime(date."$date"/1000) as date from blablaSQL Server(兼容模式):也可以用方括号([])包裹字段名
修改后的SQL代码:select from_unixtime(date.[$date]/1000) as date from blabla
核心逻辑就是通过包裹符明确告诉数据库引擎:$date是一个字段名称,不是其他语法符号。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

