我在通过redshift表查询获取数据时遇到问题。例如:
table name: test_users
column names: user_id, userName, userLastName
现在,在创建test_users
表时,它会将userName
列的大写字母转换为username
,并与userLastName
类似,将转换为userlastname
我找到了将所有列转换为大写或小写的方法,但不是按原样将其转换为。
答案 0 :(得分:0)
不幸的是,在撰写本文时(2020年2月),AWS Redshift不支持区分大小写的标识符。而且,尽管Redshift基于PostgreSQL,但AWS对其进行了重大修改,以至于许多对PostgreSQL 8正确的假设对Redshift并不正确。
https://docs.aws.amazon.com/redshift/latest/dg/r_names.html上的文档明确指出了小写的标识符。相关段落如下,关键句子加粗:
名称标识数据库对象,包括表和列,以及用户和密码。术语名称和标识符可以互换使用。标识符有两种类型,标准标识符和带引号或定界的标识符。标识符只能包含UTF-8可打印字符。 标准和定界标识符中的ASCII字母不区分大小写,并在数据库中折叠为小写。在查询结果中,默认情况下,列名以小写形式返回。要以大写形式返回列名称,请将describe_field_name_in_uppercase配置参数设置为true。