BigQuery是否支持含连字符(-)的列名?例如abc-xyz
BigQuery带连字符列名的使用说明
BigQuery确实允许创建包含连字符(比如abc-xyz)的列名,但直接写SELECT查询会报错——因为SQL语法里的连字符默认被解析为减法运算符,数据库会把abc-xyz当成abc减去xyz处理,自然找不到对应列。
正确使用方式
要查询带连字符的列名,必须用**反引号(`)**把列名包裹起来,示例如下:
- 创建带特殊列名的表(可正常执行):
CREATE TABLE my_dataset.my_table ( `abc-xyz` STRING, id INT64 );
- 插入数据:
INSERT INTO my_dataset.my_table (`abc-xyz`, id) VALUES ('test content', 1);
- 查询数据(必须用反引号包裹列名):
SELECT `abc-xyz`, id FROM my_dataset.my_table;
额外建议
虽然BigQuery支持这类特殊字符列名,但尽量避免使用——这类命名会增加查询复杂度,还容易引发语法失误。优先用下划线(abc_xyz)替代连字符,符合SQL常规命名规范。另外,空格、中文等特殊字符的列名,查询时同样需要用反引号包裹。
内容的提问来源于stack exchange,提问作者Rajnish Singh
相关产品推荐
相关产品推荐

