在 Snowflake 中用单引号重命名列名

Renaming column names with single quote in Snowflake

我有一个 table 包含以下数据;

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 ''''.

请问如何改正,并适当重命名该列,不带单引号。

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

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., u., u. FROM ugly u;
SELECT u.id, u."'str'", u."'str2'" FROM ugly u;

希望对你有帮助...丰富

您的 SQL 语句中 "renaming" 列的示例:

SELECT  p.active_duration,
        p."'Control'" AS Control_Rate,
        p."'Test'" AS Test_Rate
FROM pivot_tab p;

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

ALTER TABLE pivot_tab RENAME COLUMN "'Control'" TO Control;
ALTER TABLE pivot_tab RENAME COLUMN "'Test'" TO Test;