选择忽略空白列的地址

时间:2016-10-31 13:46:07

标签: sql ingres

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

2 个答案:

答案 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)