Redshift中查询SUPER类型字段值如何去除双引号(无需类型转换)
解决Redshift SUPER类型字段查询返回带双引号的问题
无额外开销的解决方案
保留你当前的大小写敏感设置,修改查询语句中属性的引用方式——去掉属性名外的双引号,同时确保属性名大小写与JSON中的完全一致:
SET enable_case_sensitive_identifier to TRUE; SET enable_case_sensitive_super_attribute to TRUE; select column_1.exp_3 FROM table_1;
执行后会直接返回不带双引号的DUPLICATE。
原理说明
当enable_case_sensitive_super_attribute设为TRUE时:
- 用双引号包裹属性名(如
column_1."exp_3"),Redshift会将其视为对带引号的JSON属性名称的精确匹配,因此返回原始的带引号字符串; - 直接使用无引号的属性名(如
column_1.exp_3),则会按大小写敏感规则匹配JSON中的属性,并自动解析出不带引号的字符串值,全程无需类型转换,不会增加查询开销。
内容的提问来源于stack exchange,提问作者alpesh pradhan
相关产品推荐
相关产品推荐

