如果某行在 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_number
和 l1.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/