如何判断Snowflake中表列名是否带引号创建?
Snowflake区分带引号创建列的方法
在Snowflake里,INFORMATION_SCHEMA.COLUMNS视图确实没有直接标记列是否带引号创建,但可以通过SHOW COLUMNS命令来获取这个信息,具体步骤如下:
1. 执行列信息查询命令
针对目标表执行SHOW COLUMNS命令:
SHOW COLUMNS IN TABLE TestSchemaTable1;
2. 转换结果为可查询表
Snowflake的SHOW命令结果需要用RESULT_SCAN转换为关系表,从而提取quoted字段(Y表示带引号创建,N表示不带):
SELECT "column_name", "quoted" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));
查询结果示例
针对你提供的测试表,查询结果会是:
| column_name | quoted |
|---|---|
| COLUMN1 | N |
| column8 | Y |
补充说明
- 带引号创建的列是大小写敏感的,后续查询该列时必须用引号包裹列名(比如
SELECT "column8" FROM TestSchemaTable1); - 不带引号创建的列会被Snowflake自动转换为大写,查询时无需区分大小写(比如
select column1或SELECT COLUMN1都能正常查询)。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

