,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
答案 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()
用空格填充数字。