Jan*_*ley 1 snowflake-cloud-data-platform
下面的示例 SQL - 基本上,如果我们使用“类别”而不是定义为类别(无引号)来运行此查询,则它可以正常工作。但是下面的失败有SQL compilation error: error line 1 at position 14 invalid identifier '"category"'.任何想法吗?
create or replace table monthly_sales(empid int, amount int, month text, "category" text)
as select * from values
(1, 10000, 'JAN', 'aaa'),
(1, 400, 'JAN', 'xxx'),
(2, 4500, 'JAN', 'aaa'),
(2, 35000, 'JAN', 'aaa'),
(1, 5000, 'FEB', 'bbb'),
(1, 3000, 'FEB', 'bbb'),
(2, 200, 'FEB', 'bbb'),
(2, 90500, 'FEB', 'aaa'),
(1, 6000, 'MAR', 'zzz'),
(1, 5000, 'MAR', 'aaa'),
(2, 2500, 'MAR', 'ttt'),
(2, 9500, 'MAR', 'aaa'),
(1, 8000, 'APR', 'iii'),
(1, 10000, 'APR', 'iii'),
(2, 800, 'APR', 'aaa'),
(2, 4500, 'APR', 'zzz');
select empid, "category", "'JAN'", "'FEB'", "'MAR'", "'APR'"
from monthly_sales
pivot(sum(amount) for month in ('JAN', 'FEB', 'MAR', 'APR'))
as p
order by empid;
Run Code Online (Sandbox Code Playgroud)
如果您在会话中执行此操作,则可以使您的代码工作:
alter session set quoted_identifiers_ignore_case = true;
Run Code Online (Sandbox Code Playgroud)
https://docs.snowflake.net/manuals/sql-reference/parameters.html#quoted-identifiers-ignore-case
编辑:如果你不想这样做,你必须在你的选择查询中用单引号括起“类别”:
select empid, '"category"', "'JAN'", "'FEB'", "'MAR'", "'APR'"
from monthly_sales
pivot(sum(amount) for month in ('JAN', 'FEB', 'MAR', 'APR'))
as p
order by empid;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |