是否可以将postgres查询的结果作为输入传递给另一个函数?
作为一个非常人为的例子,说我有一个像
SELECT id, name
FROM users
LIMIT 50
Run Code Online (Sandbox Code Playgroud)
我想创建一个函数my_function,它接受第一个查询的结果集并返回最小的id.这可能在pl/pgsql中吗?
SELECT my_function(SELECT id, name FROM Users LIMIT 50); --returns 50
Run Code Online (Sandbox Code Playgroud) 我们如何传递一个(无限量)行数组(即常量表)作为PostgreSQL函数的参数/参数?
这是一个想法:
CREATE TYPE foo AS (
x bigint,
y smallint,
z varchar(64)
);
CREATE OR REPLACE FUNCTION bar(bigint, foo[]) RETURNS TABLE(a bigint, x bigint, y smallint, z varchar(64)) AS
$$
SELECT $1, x, y, z FROM unnest($2);
$$
LANGUAGE SQL;
Run Code Online (Sandbox Code Playgroud)
下面的函数调用有效,但有没有办法缩短它?
SELECT * FROM bar(1, ARRAY[(1,2,'body1'),(2,1,'body2')]::foo[]);
Run Code Online (Sandbox Code Playgroud)
例如,我们无法删除::foo[]强制转换,但是有没有办法重写事物以便我们可以省略它?
我们应该使用变量论证吗?
我是使用 Dapper 的新手,我只是不知道如何将 json 文件中的属性列表插入到我的 postgres 数据库中。
所以我们开始我的对象类:
public class UniqueIdField
{
public string name { get; set; }
public bool isSystemMaintained { get; set; }
}
public class SpatialReference
{
public int wkid { get; set; }
public int latestWkid { get; set; }
}
public class Field
{
public string name { get; set; }
public string type { get; set; }
public string alias { get; set; }
public string sqlType { get; set; }
public int …Run Code Online (Sandbox Code Playgroud)