Select 地址忽略空白列
Select address ignoring blank columns
Ingres DB,属性数据如下
addr1
addr2
addr3
addr4
postcode
有些地址很短,因此在 addr3 或 addr4 中没有值。例如
addr1 : 14 Random Street
addr2 : City
addr3:
addr4:
postcode : LT1 5GH
邮政编码总是被填充。
如何使用 SQL select 连续字段中的地址元素?
所以我想要的输出如下
14 Random Street, City, LT1 5GH
Flat 5, 15 Random Street, District, London, E35 5FG
67 Whatever Crescent, Lovely Street, Eastwich, LH6 &GH
您可以使用 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
如果 +
不是 ingres 中的串联运算符,则使用 concat
或类似函数。
SELECT CONCAT( CASE WHEN ISNULL(Add1,'') <> '' THEN Add1 + ',' END , CASE WHEN ISNULL(Add2,'') <> '' THEN Add2 + ' ,' END,CASE WHEN ISNULL(Add3,'') <> '' THEN Add3 + ',' END,CASE WHEN ISNULL(Add4,'') <> '' THEN Add4 + ',' END,CASE WHEN ISNULL(邮政编码,'') <> '' THEN 邮政编码结束)
Ingres DB,属性数据如下
addr1
addr2
addr3
addr4
postcode
有些地址很短,因此在 addr3 或 addr4 中没有值。例如
addr1 : 14 Random Street
addr2 : City
addr3:
addr4:
postcode : LT1 5GH
邮政编码总是被填充。
如何使用 SQL select 连续字段中的地址元素?
所以我想要的输出如下
14 Random Street, City, LT1 5GH
Flat 5, 15 Random Street, District, London, E35 5FG
67 Whatever Crescent, Lovely Street, Eastwich, LH6 &GH
您可以使用 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
如果 +
不是 ingres 中的串联运算符,则使用 concat
或类似函数。
SELECT CONCAT( CASE WHEN ISNULL(Add1,'') <> '' THEN Add1 + ',' END , CASE WHEN ISNULL(Add2,'') <> '' THEN Add2 + ' ,' END,CASE WHEN ISNULL(Add3,'') <> '' THEN Add3 + ',' END,CASE WHEN ISNULL(Add4,'') <> '' THEN Add4 + ',' END,CASE WHEN ISNULL(邮政编码,'') <> '' THEN 邮政编码结束)