在雪花中使用单引号重命名列名称

问题描述 投票:0回答:2

我有一个包含以下数据的表;

Active_Duration|'Control'|'Test'
    1          | 0.21    | 0.22

但是我想要没有单引号的列名。我尝试了以下代码将单引号视为文字,但出现以下错误。

 SELECT p.active_duration,
          p.''Control'' AS Control_Rate,
          p.''Test'' AS Test_Rate
   FROM pivot_tab p;
 SQL compilation error: syntax error line 2 at position 16 unexpected ''''. syntax error line 3 at position 16 unexpected ''''.

我可以知道如何更正它,并适当地重命名该列而不用单引号引起来。

snowflake-data-warehouse
2个回答
2
投票

我强烈建议您重建该表,但是如果必须保留它,这是一些使用此类列的示例。

CREATE OR REPLAE TABLE ugly (
   id number, 
   "'str'" varchar(20), 
   "'str2'" varchar(20));
INSERT INTO ugly values (1, 'hello', 'world');
SELECT * FROM ugly;
SELECT u.$1, u.$2, u.$3 FROM ugly u;
SELECT u.id, u."'str'", u."'str2'" FROM ugly u;

我希望这对您有帮助... Rich


0
投票

要重命名列,您可以使用SnowFlake的RENAME语法

ALTER TABLE pivot_tab RENAME COLUMN "'Control'" TO Control;
ALTER TABLE pivot_tab RENAME COLUMN "'Test'" TO Test;
© www.soinside.com 2019 - 2024. All rights reserved.