set-returning-functions相关内容
我正在尝试使用 generate_series 函数在 PostgreSQL 中生成一个系列.我需要从 2008 年 1 月到 current month + 12 (一年后)的一系列月份.我正在使用并仅限于 PostgreSQL 8.3.14(所以我在 8.4 中没有时间戳系列选项). 我知道如何获得一系列的日子,例如: select generate_series(0,365) + d
..
我是 Postgres 的新手,有一个包含多个相同结构表的数据库.我需要从每个表中选择符合特定条件的数据. 我可以用一堆 UNION 查询来做到这一点,但是我需要搜索的表的数量会随着时间的推移而改变,所以我不想这样硬编码.我一直在尝试开发一个函数,该函数将循环遍历特定的表(它们有一个共同的命名约定)并返回一个记录表,但是当我查询该函数时我没有得到任何结果.功能代码如下: 创建或替换函数 p
..
假设我有一张这样的表: 主题 |旗帜------+------这是一个测试|2 subject 是 text 类型,flag 是 int 类型.我想在 Postgres 中将此表转换为类似的内容: 令牌 |旗帜------+------这|2是 |2一个|2测试 |2 有没有简单的方法可以做到这一点? 解决方案 在 Postgres 9.3+ 中使用 LATERAL join:
..
我有一张表,用于存储帐户随时间的变化.如果这些记录不存在,我需要将它与另外两个表连接起来以创建特定日期的一些记录. 为了让事情更简单(我希望如此),我将返回正确历史数据的查询封装到一个函数中,该函数接收帐户 ID 和日期. 如果我执行 "Select * account_servicetier_for_day(20424, '2014-08-12')",我会得到预期的结果(函数返回的所
..
我正在尝试在 Postgres 9.4 的 Postgres jsonb 字段中保留如下值: [{"event_slug":"test_1","start_time":"2014-10-08","end_time":"2014-10-12"},{"event_slug":"test_2","start_time":"2013-06-24","end_time":"2013-07-02"},{"e
..
表:table_name 创建表table_name(given_dates 时间戳,set_name varchar); 插入记录: insert into table_name values('2001-01-01'),('2001-01-05'),('2001-01-10'),('2001-01-15'),('2001-01-20'),('2001-01-25'),('2001-02-
..
这是的变体返回多列的 plpgsql 函数被多次调用.但是,我希望找到针对我的特定情况的解决方案. 我有一个函数,它处理带有给定参数的行数组,并返回一组行 + 一个新列. CREATE OR REPLACE foo(data data[], parameter int) RETURNS SETOF Enhanceddata AS... 该函数适用于只有一组数据的测试用例 SELECT
..
据我所知,我的函数与我见过的样本非常相似.有人能告诉我如何让它工作吗? 创建或替换函数 get_user_by_username(用户名 varchar(250),在线布尔值) 将记录集返回为 $$申报结果记录;开始如果在线那么更新用户设置 last_activity = current_timestamp其中 user_name = 用户名;万一;返回查询选择用户身份,用户名,最后一个活动,创
..
我试图通过两个集合返回函数的结果获得“交叉连接",但在某些情况下我没有获得“交叉连接",请参见示例 Behaviour 1:当设置的长度相同时,从每个集合中逐项匹配 postgres=# SELECT generate_series(1,3), generate_series(5,7) 按 1,2 排序;生成系列|生成系列-----------------+----------------
..
我有同样的问题: 拆分一个Postgresql 中的逗号分隔字段并对所有结果表执行 UNION ALL 只是我的“水果"列由“|"分隔.当我尝试时: SELECT你的Table.ID,regexp_split_to_table(yourTable.fruits, E'|') AS split_fruits从你的表 我得到以下信息: 错误:类型“e"不存在 第一季度.E 有什么作用?我看
..
我的最后一个问题 将数组传递给存储到 postgres 有点不清楚.现在,澄清我的目标: 我想创建一个接受两个输入参数的 Postgres 存储过程.一个是一些金额的列表,例如(100, 40.5, 76),另一个是一些发票的列表('01-2222-05','01-3333-04','01-4444-08').之后我想使用这两个数字和字符列表并用它们做一些事情.例如,我想从这个数字数组中取出
..
当我有一个带有分隔值的列时,我可以使用 unnest() 函数: myTable身份证 |元素---+------------1 |ab,cd,efg,hi2 |jk,lm,no,pq3 |rstuv,wxyz选择 id, unnest(string_to_array(elements, ',')) AS elem从我的表身份证 |元素----+-----1 |AB1 |光盘1 |efg1 |你
..
我的最后一个问题 将数组传递给存储到 postgres 有点不清楚.现在,澄清我的目标: 我想创建一个接受两个输入参数的 Postgres 存储过程.一个是一些金额的列表,例如(100, 40.5, 76),另一个是一些发票的列表('01-2222-05','01-3333-04','01-4444-08').之后我想使用这两个数字和字符列表并用它们做一些事情.例如,我想从这个数字数组中取出
..
我在 UDF 中有一个查询(如下所示),其中 unnest() 是一个整数数组并对其进行连接,因为我知道这一点,所以我在 pgplsql UDF 中创建了一个本地临时表作品.是否可以直接在查询中使用 unnest 来执行连接,而不必创建临时表? 创建或替换函数 search_posts(forum_id_ 整数,查询_字符变化,偏移_整数默认为空,限制_整数默认为空,from_date_ TIM
..
我已经尝试了常见的PostgreSQL答案,但似乎不适用于Redshift: SELECT * FROM VALUES (1) AS q (col1); ERROR: 42883: function values(integer) does not exist 我需要这个,因为某些原因我不能使用UNION ALL.任何帮助将不胜感激. 解决方案 正确的Postgres语法为:
..
我有一个带有数组列的表,像这样: my_table id数组 - ------------ 1 {1,3,4,5} 2 {19,2,4,9} 3 {23,46, 87,6} 4 {199,24,93,6} 我想要结果是,重复的值在哪里,像这样: value_repeated is_repeated_on ------- ------- -
..
我正在尝试获取范围内的日期列表,类似于PostgreSQL中的命令NOW(),唯一的区别是 now()仅返回当前日期。 如果执行以下操作,则会得到: 立即选择(); 2013-09-27 15:27:50.303-05 或例如,我可以这样做: select now()-间隔“ 1”天; 结果为昨天 2013-09-27 1
..
这是对早期版本的后续问题。我有一个存储函数 f1 ,它带有两个参数,返回一个包含5列的表;现在返回的值是常量,以后将根据参数计算得出。 我还有一个表 t1 ,其中两列的类型与 f1 的参数相对应。 我现在要定义一个视图 v1 包含从 f1 返回的所有行的并集,该行存储在 t1中。对于给定的示例值,结果应为: + --- + --- + --- +- + --- + --- +
..
使用Postgres 9.3,我发现我可以执行以下操作: SELECT generate_series(1,10); 但是我不能这样做: SELECT(SELECT generate_series(1,10)); 我能以某种方式将SELECT结果转换为 setof int 可以将其与 generate_series()的结果相同? 为
..
说我在postgres中有一个简单的表格,如下所示: + -------- +- ------- + ---------- + |汽车|宠物|姓名| + -------- + -------- + ---------- + |宝马|狗|山姆| |本田|猫|玛丽| |丰田|狗|山姆| | ... | ... | ... | 我想运行一个SQL查询,该
..