Ingres DB,属性数据如下
addr1
addr2
addr3
addr4
postcode
某些地址很短,因此在addr3或addr4中没有值。 E.g。
addr1 : 14 Random Street
addr2 : City
addr3:
addr4:
postcode : LT1 5GH
始终填充邮政编码。
如何使用SQL选择连续字段中的地址元素?
所以我想要的输出如下
14 Random Street, City, LT1 5GH
Flat 5, 15 Random Street, District, London, E35 5FG
67 Whatever Crescent, Lovely Street, Eastwich, LH6 &GH
答案 0 :(得分:2)
您可以使用case
表达式尝试此操作。
case when addr1<> '' and addr1 is not null then addr1 +',' else '' end +
case when addr2<> '' and addr2 is not null then addr2 +',' else '' end +
case when addr3<> '' and addr3 is not null then addr3 +',' else '' end +
case when addr4<> '' and addr4 is not null then addr4 +',' else '' end +
zip
如果concat
不是ingres中的连接运算符,请使用+
或类似函数。
答案 1 :(得分:1)
SELECT CONCAT(ISNULL时的情况(Add1,'')&lt;&gt;''那么Add1 +','END,CASE WHEN ISNULL(Add2,'')&lt;&gt;''那么Add2 +','结束,ISNULL时的情况(Add3,'')&lt;&gt;''那么Add3 +','END,CASE WHEN ISNULL(Add4,'')&lt;&gt;''然后Add4 +','END,CASE WHEN ISNULL(邮政编码,'')&lt;&gt;''然后邮政编码END)