【发布时间】:2021-05-12 16:39:10
【问题描述】:
有时当我从雪花表中选择一列时,我需要使用双引号或者它区分大小写,但在其他情况下,它不是。
我是 Snowflake 的新手。
- 为什么有些列会区分大小写?
- 当我在 select 语句中使用列名中的哪些字符时,我需要在双引号中列出整个列名?
【问题讨论】:
标签: database snowflake-cloud-data-platform
有时当我从雪花表中选择一列时,我需要使用双引号或者它区分大小写,但在其他情况下,它不是。
我是 Snowflake 的新手。
【问题讨论】:
标签: database snowflake-cloud-data-platform
为什么有些列会区分大小写?
当一个标识符被双引号括起来时,它会按照输入的内容进行存储和解析,包括大小写。
当我在 select 语句中使用列名时,哪些字符需要我用双引号列出整个列名?
[A-Za-z_0-9$] 之外的所有内容或需要区分大小写的内容都需要使用" 引用
不带引号的对象标识符:
以字母(A-Z、a-z)或下划线(“_”)开头。
仅包含字母、下划线、十进制数字 (0-9) 和美元符号 (“$”)。
不区分大小写。
【讨论】:
WHERE REGEXP_LIKE(col, '.*[^A-Za-z_0-9].*')
为什么有些列会区分大小写?
当我在 select 语句中使用列名时,哪些字符需要我用双引号列出整个列名?
当我们只使用没有特殊字符或空格的大写字母时,我们在 select 语句中引用它们时不需要使用双引号,但这可能与源系统中的原始列名不同。
【讨论】: