使用合并从2个表中返回第一个非空值

游戏玩家

我的Postgres数据库中有2个表。他们每个人都有一个URL列,我想查询并返回第一个非空值。

test1 
id  name   url 

test2 
id   address url 

我有id输入。如何编写查询以合并任何ID的最新可用URL?

test 1
ID   name         url 
1     A           null     
2     B           abc.com
3     C           xyz.com

test 2
ID   address         url 
1     X            return.com     
2     Y            null
3     Z            efg.com

合并后,我期望return.com将被返回。id = 1最新可用URL表示第一个非空条目。

Richyen

从注释中很难确定“最新”和“第一”的含义,因为COALESCE不知道如何区分(基本上,您必须定义优先级)。如果您的示例使用return.com,则正确的语法为:

SELECT COALESCE(b.url,a.url) FROM test_1 a JOIN test2 a ON a.id=b.id WHERE a.id=1

因此,在此示例中,b.url只要不为空,您将始终显示如果您希望它动态地确定优先级a.urlb.url基于一些基于时间的条件,则需要编写一个plpgsql函数或进行一些复杂的数组嵌套和字符串连接(或者我想在这里看到其他专家炫耀他们的作品)

披露:我为EnterpriseDB(EDB)工作

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java 8中懒惰地返回第一个非空列表

获取每行的第一个非空值

熊猫列列表中每行的第一个非空值

熊猫-在列中查找第一个非空值

如何获取Java中的第一个非空值?

SQL-返回前几天的第一个非空值

PySpark:获取数据框中每个列的第一个非空值

SQL Server 2008 R2:从列中获取第一个非空值

获取组中的第一个非空值

如何使用Oracle SQL获取多个列中的第一个非零/非空值和最后一个零/非空值

从另一个表返回的值与第一个表的值匹配

具有多列的表中每个组的第一个非空值

返回第一个非零值的列名

如何使用react更新和显示setState上的第一个非空值?

返回第一个非空/空白值?

Excel公式获取行中的第一个和最后一个非空值并返回列标题

返回python列表中的第一个非NaN值

联接2个表并从第一个表中获取一些列,并从第二个表中获取最大时间戳值

Linq查询联接两个表并从第一个表返回对象-使用的PagedList

如何从foreach PHP中获取第一个非空过滤值?

从 Python 中的序列的谓词中查找第一个非 None 返回值

使用 PostgreSQL xpath 函数并从数组中获取第一个返回值

返回 tableau 中列/行中的第一个非零值

如何使用 LOOKUP 函数返回第一个非空值

问:从excel中的第一个非空值开始一行

SQL如何找到2列之间的第一个非空值

如何返回数组中的第一个非错误值?

查找分区中的第一个非空

如何在excel中获得第一个非空/空值