Sql 将函数中的二维数组作为行和列输出
我在做一个函数,在这里我创建了一个二维数组,沿着Sql 将函数中的二维数组作为行和列输出,sql,postgresql,plpgsql,Sql,Postgresql,Plpgsql,我在做一个函数,在这里我创建了一个二维数组,沿着 {{1, 'John', 'Smith'}, {1, 'Jane', 'Doe'}, {3, 'Tony', 'Stark'}} 我正在构建的函数将来自几个不同查询的数据组合在一起,尽管它似乎不必要,但这似乎是迄今为止我组合数据的唯一方法 我遇到的问题是将数组显示为表 我这样调用我的函数: SELECT * FROM my_func(); ^^并从上面获取数组输出^^ 我希望能够返回这样的内容:-如果我可以标记列,那就更好了 Col1 |
{{1, 'John', 'Smith'}, {1, 'Jane', 'Doe'}, {3, 'Tony', 'Stark'}}
我正在构建的函数将来自几个不同查询的数据组合在一起,尽管它似乎不必要,但这似乎是迄今为止我组合数据的唯一方法
我遇到的问题是将数组显示为表
我这样调用我的函数:
SELECT * FROM my_func();
^^并从上面获取数组输出^^
我希望能够返回这样的内容:-如果我可以标记列,那就更好了
Col1 | Col2 | Col3
1 | John | Smith
2 | Jane | Doe
3 | Tony | Stark
我试过:SELECT*FROM my_func()代码>哪一个更好,但仍然无法使用,因为它将所有内容都放在一个列中
Col1
1
John
Smith
2
Jane
Doe
3
Tony
Stark
问题中缺少信息,因此假设您希望返回三列(int、text、text)
。同时假设目前的博士后成绩为9.5
纯SQL
在横向连接中使用:
WITH t(a) AS (
SELECT '{{1, John, Smith}, {1, Jane, Doe}, {3, Tony, Stark}}'::text[]
)
SELECT t.a[i][1]::int AS col1, t.a[i][2] AS col2, t.a[i][3] AS col3
FROM t, generate_subscripts(t.a, 1) i;
相关的:
PL/pgSQL
循环使用:
电话:
相关的:
每个返回:
col1 | col2 | col3
------+------+-------
1 | John | Smith
1 | Jane | Doe
3 | Tony | Stark
WITH t(a) AS (
SELECT '{{1, John, Smith}, {1, Jane, Doe}, {3, Tony, Stark}}'::text[]
)
SELECT f.*
FROM t, my_func(t.a) f;
col1 | col2 | col3
------+------+-------
1 | John | Smith
1 | Jane | Doe
3 | Tony | Stark