使用 SQL 将输出从视图转换为 json 和雪花数组的问题
issues converting output from a view to json and array in snowflake using SQL
我是 snowflake 的新手,并且已经使用 sql 从 table 成功创建了一个视图,但是我在创建一个将整个 table 转换为 [= 的视图时遇到了问题44=] 和数组
我的观点
create or replace view my_view as (
select id, town, created_date, updated_at, array_construct(
object_construct('service','green','period',
object_construct('Type',type,'end_date', end_date)))Services
from demo
);
my_view输出
id
town
created_date
updated_at
Services
123
modak
2024-03-29
2024-03-29
[{ "service": "green", "period":{"Type": "definite", "end_date": "2024-03-29 11:17:42.000"}}]
我的 objective 是从 my_view 创建两个视图,它们将执行以下操作:
- 将my_view转换为json
- 将my_view转换为数组
下面的代码能够将my_view转换成json并成功排列
select array_agg(object_construct(*)) from my_view;
select object_construct(*) from my_view;
但是当我尝试用它创建视图时出现错误
create or replace view my_json as (
select object_construct(*) from my_view
);
error generated
SQL compilation error: Missing column specification
表达式必须使用别名:
create or replace view my_json as (
select object_construct(*) AS output from my_view
);
或:
create or replace view my_json(output) as (
select object_construct(*) from my_view
);
我是 snowflake 的新手,并且已经使用 sql 从 table 成功创建了一个视图,但是我在创建一个将整个 table 转换为 [= 的视图时遇到了问题44=] 和数组
我的观点
create or replace view my_view as (
select id, town, created_date, updated_at, array_construct(
object_construct('service','green','period',
object_construct('Type',type,'end_date', end_date)))Services
from demo
);
my_view输出
id | town | created_date | updated_at | Services |
---|---|---|---|---|
123 | modak | 2024-03-29 | 2024-03-29 | [{ "service": "green", "period":{"Type": "definite", "end_date": "2024-03-29 11:17:42.000"}}] |
我的 objective 是从 my_view 创建两个视图,它们将执行以下操作:
- 将my_view转换为json
- 将my_view转换为数组
下面的代码能够将my_view转换成json并成功排列
select array_agg(object_construct(*)) from my_view;
select object_construct(*) from my_view;
但是当我尝试用它创建视图时出现错误
create or replace view my_json as (
select object_construct(*) from my_view
);
error generated
SQL compilation error: Missing column specification
表达式必须使用别名:
create or replace view my_json as (
select object_construct(*) AS output from my_view
);
或:
create or replace view my_json(output) as (
select object_construct(*) from my_view
);