我有当前的代码来构建这样的地址字符串:
addressStreet = "";
if(q1.addr1 != "") {
addressStreet = addressStreet & q1.addr1;
}
if(q1.addr2 != "") {
addressStreet = addressStreet & "<br>" & q1.addr2;
}
if(q1.addr3 != "") {
addressStreet = addressStreet & "<br>" & q1.addr3;
}
if(q1.addr4 != "") {
addressStreet = addressStreet & "<br>" & q1.addr4;
}
Q1
是查询所有列所在的位置。我试图在 Sybase SQL 查询中完成所有这些连接。这是我尝试过的示例:
DECLARE @AddressStreet VARCHAR(500)
SELECT
CASE
WHEN datalength(address1) > 0 THEN @AddressStreet + address1
WHEN datalength(address2) > 0 THEN @AddressStreet + address2
WHEN datalength(address3) > 0 THEN @AddressStreet + address3
WHEN datalength(address4) > 0 THEN @AddressStreet + address4
END AS AddressStr
FROM Info
WHERE recid = 1214
上面的查询产生了这个结果:
18 Wolf Street,
该结果不正确,因为address2
列具有以下值:Suite 408
。地址应如下所示:
18 Wolf Street,
Suite 408
有没有办法在 Sybase SQL 中获得所需的输出?谢谢你。