我有一个包含以下数据的表;
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 ''''.
我可以知道如何更正它,并适当地重命名该列而不用单引号引起来。
我强烈建议您重建该表,但是如果必须保留它,这是一些使用此类列的示例。
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
要重命名列,您可以使用SnowFlake的RENAME语法
ALTER TABLE pivot_tab RENAME COLUMN "'Control'" TO Control;
ALTER TABLE pivot_tab RENAME COLUMN "'Test'" TO Test;