【发布时间】:2021-11-28 13:24:10
【问题描述】:
您好,我有一张这样的桌子:
+-----------------+------------------+
| id | dates |
+------------------------------------+
| 1 |{2010,2011,2018} |
| 2 | 2000 |
+------------------------------------+
如果有日期
对于这种情况,它应该返回 id 1 : 2011 和 id 2 : null
编辑这是解决方案:
case when (select max (x) FROM unnest(ARRAY[c.dates]) as x)< 2015 then (select max (x) FROM unnest(ARRAY[c.dates]) as x)
else null end as "15com",
【问题讨论】:
-
请详细说明您正在处理的数据类型、示例输入和预期输出
-
数据类型为年份转换为 int 。我需要提取 2015 年之前的最后一年活动,如果数组中没有更小的值,则返回 null
-
如果 2015 > any{2000,2010,,2017} 那么会怎样?
-
2010(应该取最接近的值)
-
“数组”到底是什么意思?为什么你的问题涉及“数组”这个词?是不是你想要最大的年份小于 2015 年,如果没有找到 2020 年?还是有些年份很特别?如果有,它们有何特别之处?
标签: sql arrays postgresql