如何在Redshift结果中将大写字母和小写字母保留在列别名中

时间:2019-02-21 03:16:37

标签: amazon-redshift

在Redshift中,当我们将结果导入TABLEAU时,我们试图为从查询返回的列赋予更有意义的别名,问题是RedShift将所有字母都转换为小写字母,即从“ Event Date”开始”,然后返回“事件日期”,关于如何解决这一问题以保持别名的任何想法?

Query

Final Column Name

3 个答案:

答案 0 :(得分:1)

否,您无法在Redshift中执行此操作。所有列都是小写。

您只能使用来强制使用大写

set describe_field_name_in_uppercase to on;

也请参见此处的示例https://docs.aws.amazon.com/redshift/latest/dg/r_names.html,您可以看到大写字符返回为小写。并说“标识符不区分大小写,并在数据库中折叠为小写”

您当然可以重命名该列以在Tableau中包含大写字母。

答案 1 :(得分:0)

您需要输入

app.js:86 Uncaught TypeError: Cannot read property 'replace' of undefined
    at Object.addListItem (app.js:86)
    at HTMLButtonElement.ctrlAddItem (app.js:124)

在Tableau的初始SQL中。

答案 2 :(得分:-1)

我正在查看AWS文档中的redshift,并且 INTCAP 函数可以解决您的用例

供参考=> https://docs.aws.amazon.com/redshift/latest/dg/r_INITCAP.html

简要说明(已复制)

INITCAP函数使字符串中每个单词的第一个字母大写,而所有后续字母都变为(或左移)小写。因此,重要的是要了解哪些字符(空格字符除外)用作单词分隔符。单词分隔符是任何非字母数字的字符,包括标点符号,符号和控制字符。以下所有字符都是单词分隔符:

! “#$%&'()* +,-。/:; <=>?@ [\] ^ _ _ {{}〜

在您的情况下,您已将字段名称声明为event_date,它将转换为Event_Date。

接下来,您可以使用 REPLACE 函数替换下划线'_'

供参考=> https://docs.aws.amazon.com/redshift/latest/dg/r_REPLACE.html