Sql RTRIM&;带Case语句的LTRIM函数

Sql RTRIM&;带Case语句的LTRIM函数,sql,sql-server,Sql,Sql Server,如何将LTRIM和RTRIM与以下SQL一起使用?我需要LTRIM和RTRIM所有这些字段的前导空格 UPDATE CORE.WeccoPartyAddress SET AddressElements = CONTROL.TrimChar( CASE when COALESCE(Address1,'') != '' THEN Address1 + ', ' ELSE '' END +

如何将LTRIM和RTRIM与以下SQL一起使用?我需要LTRIM和RTRIM所有这些字段的前导空格

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))
使用如下所示:

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

您不必在语句中使用
CASE

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
    ,''
    ), '')

如果任何地址值不为null,则会得到如下字符串:“,Address”,然后使用字符串开头的函数替换“,”以获得“Address”作为结果


如果所有值都为null,则STUFF函数将返回null,并由函数替换为“”。

您不必在语句中使用
CASE

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
    ,''
    ), '')

如果任何地址值不为null,则会得到如下字符串:“,Address”,然后使用字符串开头的函数替换“,”以获得“Address”作为结果


如果所有值都为null,则STUFF函数将返回null,该值将由函数替换为“”。

CONTROL.TrimChar()
不是有效的t-SQL。那是什么?(看起来你把T-SQL和C混合了起来。)你查过
LTRIM
RTRIM
的语法了吗?你对它们的用法有什么不了解?^很可能。可能他想在传递到SQL查询之前从表单中的输入字段中删除值。是的,我想在传递到SQL查询之前从输入字段中删除值。在这种情况下,您需要提供C代码,在其中调用SQL查询、设置参数等。
CONTROL.TrimChar()
不是有效的t-SQL。那是什么?(看起来你把T-SQL和C混合了起来。)你查过
LTRIM
RTRIM
的语法了吗?你对它们的用法有什么不了解?^很可能。可能他想在传递到SQL查询之前从表单的输入字段中删除值。是的,我想在传递到SQL查询之前从输入字段中删除值。在这种情况下,您需要提供您的C代码,在其中调用SQL查询、设置参数等。这表示“ltrim函数需要1个参数”当我运行它的时候,它说“ltrim函数需要一个参数”,当我运行它的时候,你能给我解释一下这段SQL是做什么的吗?我从来没用过这个before@Simulator23,我添加了一些解释。@DenisRubashkin。。对于
地址1
,不需要
,'
。我想是的@我不懂英语,不,它不需要。为什么<代码>地址是第一个地址。那么,为什么一开始它需要
,'
。?你能给我解释一下这段SQL是做什么的吗?我从来没用过这个before@Simulator23,我添加了一些解释。@DenisRubashkin。。对于
地址1
,不需要
,'
。我想是的@我不懂英语,不,它不需要。为什么<代码>地址是第一个地址。那么,为什么一开始就需要
,'
。?