Hive 如何在配置单元中转义用作列名的保留字?
当我在配置单元中执行以下查询时,它给我的是当前日期,而不是用户信息表中的列值Hive 如何在配置单元中转义用作列名的保留字?,hive,escaping,reserved-words,Hive,Escaping,Reserved Words,当我在配置单元中执行以下查询时,它给我的是当前日期,而不是用户信息表中的列值 SELECT CURRENT_DATE FROM USER_INFO LIMIT 1; 如何在配置单元中转义用作列名的保留字 谢谢和问候, 卡姆莱什明白了 有两种方法 1您可以在关键字前后使用撇号,如下所示 SELECT CURRENT_DATE FROM `USER_INFO` LIMIT 1; 2下面显示了一个设置,如果您使用unix shell(即使用sh命令)执行该设置,则可以执行该设置 希望
SELECT CURRENT_DATE
FROM USER_INFO
LIMIT 1;
如何在配置单元中转义用作列名的保留字
谢谢和问候,
卡姆莱什明白了
有两种方法
1您可以在关键字前后使用撇号,如下所示
SELECT CURRENT_DATE
FROM `USER_INFO`
LIMIT 1;
2下面显示了一个设置,如果您使用unix shell(即使用sh命令)执行该设置,则可以执行该设置
希望这有帮助
谢谢和问候,
Kamleshkumar Gujarati以查询列中的保留字(例如“用户”或“当前日期”) 请注意撇号类型`(正如Wheezil指出的,这个字符是'backtick',但我想指出的是,在国际键盘上,这个字符相对难以键入)
自我回答是可以的,但由于错误的查询,会产生误导,请在此处添加答案以供将来参考。在修复之前先投反对票。(1) 引用了错误的元素(2.1),这与shell无关。(2.2)这仅适用于某些关键字,而不是所有关键字。此处显示的转义字符是“backtick”或“accent grave”(代码点0060)而不是“撇号”。此处显示的转义字符是“backtick”或“accent grave”(代码点0060)而不是“撇号”
hive.support.sql11.reserved.keywords=false
SELECT `CURRENT_DATE`
FROM USER_INFO
LIMIT 1;