拥有5列地址数据。我需要将这些字段连接到一个地址中,如果它们之间存在空格,则它们之间应有空格。如果该列的值为空,则应跳过该列,不要输入任何空格。
select case when street_number != '' THEN (cast(street_number as int)) end as street_number, case when street_ext != '' then case when street_ext = 50 then '1/2' end end as street_ext, case when street_direct ! = '' then street_direct end as street_direct, case when site_street ! = '' then site_street end as site_street, case when site_address ! = '' then site_address end as site_address from parcel
我想做的是有一个变量,并将其分配给第一列street_number的值,然后当我移至下一列street_ext时,如果它不为null,我想检查一下是否该变量为null,如果不是,则在其后附加一个空格和值…以此类推。
我很生疏,可能会朝正确的方向推。
谢谢大家。
使用“ +”连接TSQL中的字符串:
SELECT CASE WHEN LEN(p.street_number) > 0 THEN p.street_number + ' ' ELSE '' END + CASE WHEN p.street_ext = 50 THEN '1/2' WHEN LEN(p.street_ext) > 0 THEN '' ELSE p.street_ext END + ' ' + CASE WHEN LEN(p.street_direct) > 0 THEN p.street_direct + ' ' ELSE '' END + CASE WHEN LEN(p.site_street) > 0 THEN p.site_street + ' ' ELSE '' END + CASE WHEN LEN(p.site_address) > 0 THEN p.site_address + ' ' ELSE '' END AS full_address FROM PARCEL p
该LEN函数返回零如果字符串值是NULL,或一个零长度的字符串。