简体   繁体   中英

RTRIM & LTRIM Function with Case Statement

How do i use the LTRIM & RTRIM with the following SQL? I need to LTRIM and RTRIM all these fields for leading spaces

UPDATE CORE.WeccoPartyAddress 
SET AddressElements = CONTROL.TrimChar(
                                   CASE when COALESCE(Address1,'') != '' THEN Address1 + ', ' ELSE '' END +
                                   CASE when COALESCE(Address2,'') != '' THEN Address2 + ', ' ELSE '' END +
                                   CASE when COALESCE(Address3,'') != '' THEN Address3 + ', ' ELSE '' END +
                                   CASE when COALESCE(Town,'') != '' THEN Town + ', ' ELSE '' END +
                                   CASE when COALESCE(County,'') != '' THEN County + ', ' ELSE '' END +
                                   CASE when COALESCE(Postcode,'') != '' THEN Postcode ELSE '' END, ', '
                                  )

如下嵌套使用:

UPDATE CORE.WeccoPartyAddress SET AddressElements = rtrim(ltrim(CASE when COALESCE(Address1,'') != '' THEN Address1 + ', ' ELSE '' END + CASE when COALESCE(Address2,'') != '' THEN Address2 + ', ' ELSE '' END + CASE when COALESCE(Address3,'') != '' THEN Address3 + ', ' ELSE '' END + CASE when COALESCE(Town,'') != '' THEN Town + ', ' ELSE '' END + CASE when COALESCE(County,'') != '' THEN County + ', ' ELSE '' END + CASE when COALESCE(Postcode,'') != '' THEN Postcode ELSE '' END))

You don't have to use CASE in your statement

UPDATE CORE.WeccoPartyAddress
SET AddressElements = ISNULL( STUFF (
    COALESCE( ', ' + LTRIM( RTRIM(Address1) )           , '') +
    COALESCE( ', ' + LTRIM( RTRIM(Address1Address2) )   , '') +
    COALESCE( ', ' + LTRIM( RTRIM(Address1Address3) )   , '') +
    COALESCE( ', ' + LTRIM( RTRIM(Address1Town) )       , '') +
    COALESCE( ', ' + LTRIM( RTRIM(Address1County) )     , '') +
    COALESCE( ', ' + LTRIM( RTRIM(Address1Postcode) )   , '')
    ,1
    ,2
    ,''
    ), '')

If any of Address values is not null you will get string like this: ', Address', then using the function STUFF you replace ', ' at the beginning of the string to get 'Address' as the result.

If all values are null the STUFF function will return NULL which will be replaced with '' by ISNULL function.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM