我需要做的是在Oracle SQL Developer中连接4个字段。字段是:
网络,Network2,Network3,Network4
然而,有时并非所有字段都被填写。这总是按顺序发生;它永远不会只是Network3是空的,它要么只填入第一个,只有前2个等等......
那么,如何编写一个忽略任何NULL字段的Select语句?我需要最终结果如下:
Select Network, Network2, Network3, Network4 as Defect
它应该在一个字段中显示缺陷,如“ON1,ON2,ON3,ON4”。但如果只填写前2个,我不希望它看起来像“ON1,ON2 ,,,”。
答案 0 :(得分:3)
使用NVL2(v, valueIfNotNull, valueIfNull)
SELECT
Network
|| nvl2(Network2, ', ' || Network2, '')
|| nvl2(Network3, ', ' || Network3, '')
|| nvl2(Network4, ', ' || Network4, '') AS Defect
FROM my_table
答案 1 :(得分:-1)
使用CONCATENATE ||
运算符和COALESCE()
函数:
SELECT Network
|| COALESCE(' - ' || Network2, '')
|| COALESCE(' - ' || Network3, '')
|| COALESCE(' - ' || Network4, '')
as Defect