如何在连接多列时从SQL中删除空间

时间:2018-02-16 16:10:27

标签: sql sql-server

,Rtrim (Ltrim(IsNUll((Cast(FLOOR([COL1]) as CHAR (5))),'')+' '
+ isnull([COL2],'') + ' ' + (IsNull([COL3],'')))) as COLALL

我得到的两个输出:

输出#1:

12345 main Street 

输出#2:

12    main Street

输出#1很好,因为COL1有5个字符 输出#2不好,因为COL1有2个字符。

即使COL1有2个字符,如何制作,我得到以下结果:

12 main Street 

1 个答案:

答案 0 :(得分:3)

看起来您正在使用SQL Server。如果你想把不同的元素结合起来,我建议:

class Imperials{
    protected $Data;

    function __Construct($passedData){
        $this->Data = $passedData;
        echo($this->Data['Name']);
    }
}

$var = new Imperials(array('Name'=>'Buster','Race'=>'Nords'));

这是我发现在SQL Server中使用分隔符连接可能是select stuff( (coalesce(' ' + Cast(FLOOR([COL1]) as VARCHAR(5)), '') + coalesce(' ' + col2, '') + coalesce(' ' + col3, '') ), 1, 1, '' ) 的列的最简单方法。请注意,对于特殊情况的空间,您可以使用NULL代替。 ltrim()更通用,因为该方法适用于任何分隔符。

我还应该注意,您的问题的很大一部分是使用stuff()而不是char()来表示该号码。 varchar()用空格填充数字。