sql - 如果行在 CONCAT 函数中返回 NULL,如何删除我定义的值?

标签 sql postgresql

如果某行在 CONCAT 函数中返回 NULL,我希望删除我定义的值。

我不太确定该怎么做..


CONCAT('Floor:', ' ', l1.floor, ' ', 'Unit:', ' ', l1.unit_number, ' ', 'Buzzer:', ' ', l1.buzzer) as R_ADDRESS2,

如果该行为 NULL,我希望值的每个实例都为空。 因此,如果 l1.floor 返回 NULL,则 'Floor:', ' ' 也不会出现在 R_ADDRESS2 的列中。 l1.unit_numberl1.buzzer 也是如此。

我该怎么做?

编辑: 这是它目前的显示方式:

r_address2

Floor: 10 Unit: Buzzer:
Floor: 2 Unit: 200 Buzzer:
Floor: Unit: Buzzer:

最佳答案

使用CONCAT_WS():

CONCAT_WS(' ',
          ('Floor: ' || l1.floor),
          ('Unit: ' || l1.unit_number),
          ('Buzzer: ' || l1.buzzer)
         ) as R_ADDRESS2,

|| 如果任何参数为 NULL,则返回 NULL。但是,CONCAT_WS() 会忽略 NULL 参数,因此该组合可以满足您的需求。

Here是一个数据库<> fiddle 。

关于sql - 如果行在 CONCAT 函数中返回 NULL,如何删除我定义的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55928522/

相关文章:

sql - PostGIS:在多边形中选择点的函数

java - while (rs.next()) 没有返回所有结果?

postgresql - 如何获得 MAX(SUM of values) 以找到总数最大的类别?数据库

nhibernate、postgresql 和 datetime.maxvalue

postgresql - Symfony PdoSessionHandler 无法按预期与 PostgreSql 一起工作

mysql - 数据库中的区域设置支持

mysql - 在条件下使用 GROUP BY,怎么样?

mysql - 条件联合 - 如果第一个查询不返回行,则执行第二个查询

postgresql - 计算Postgresql中相似字符串的数量

postgresql - 使用 docker 容器从 6.3.1 到 8.5.x 的 Flyway 版本迁移问题