雪花:SELECT "COLUMN" 带双引号
Snowflake: SELECT "COLUMN" with double quotes
我有一个客户,他们的 Snowflake 实例要求列名称带有双引号。示例:SELECT "CategoryName" 来自 "lk_category" ;
有谁知道如何关闭此功能?
Snowflake documentation 确实对标识符做了一些解释。
关键点是 引用的标识符 必须完全按照它们的定义来引用。所以,以下是不同的:
"ABC"
"abc"
"Abc"
不带引号的标识符不区分大小写,因此以下相同:
ABC
abc
Abc
作为奖励,这些也等同于:
"ABC"
因为 Snowflake 使用大写字母解析不带引号的标识符。
如果数据库已经用带引号的标识符创建。 . .好吧,你可以着手改变它。
Snowflake 已确定这是一个问题。您可以通过设置 QUOTED_IDENTIFIERS_IGNORE_CASE 参数来关闭引用的行为。
针对您的问题:
SELECT """CategoryName""" FROM lk_category
……就是答案。我对双数据透视表也有类似的问题。
请使用以下方式检查:
Describe View/Table Table/View_Name
我们将获得列名称列表,如果存在带双引号的字段名称 Ex:"Name"。
然后 select 我们应该使用额外的引号作为转义字符。
我有一个客户,他们的 Snowflake 实例要求列名称带有双引号。示例:SELECT "CategoryName" 来自 "lk_category" ; 有谁知道如何关闭此功能?
Snowflake documentation 确实对标识符做了一些解释。
关键点是 引用的标识符 必须完全按照它们的定义来引用。所以,以下是不同的:
"ABC"
"abc"
"Abc"
不带引号的标识符不区分大小写,因此以下相同:
ABC
abc
Abc
作为奖励,这些也等同于:
"ABC"
因为 Snowflake 使用大写字母解析不带引号的标识符。
如果数据库已经用带引号的标识符创建。 . .好吧,你可以着手改变它。
Snowflake 已确定这是一个问题。您可以通过设置 QUOTED_IDENTIFIERS_IGNORE_CASE 参数来关闭引用的行为。
针对您的问题:
SELECT """CategoryName""" FROM lk_category
……就是答案。我对双数据透视表也有类似的问题。
请使用以下方式检查:
Describe View/Table Table/View_Name
我们将获得列名称列表,如果存在带双引号的字段名称 Ex:"Name"。
然后 select 我们应该使用额外的引号作为转义字符。