在Sybase SQL中连接简单字符串时出现意外结果

3

我在Sybase上使用一个非常简单的SQL查询时,得到了意外的结果。

declare @mystring char(30)

select @mystring = 'abc'

select 'mystring = ' + @mystring

select @mystring = @mystring + 'xyz'

select 'mystring = ' + @mystring

这将返回:
mystring = abc                           
mystring = abc   

为什么最后一个选择没有返回 'abcxyz' ?
谢谢。
Bob
1个回答

3
我怀疑这是因为您声明了@mystringchar(30),并且所有CHAR值都会填充到最大长度。将其声明为varchar(30)即可解决问题。
declare @mystring varchar(30)

select @mystring = 'abc' 

select 'mystring = ' + @mystring

SELECT @mystring = @mystring + 'xyz'

select 'mystring = ' + @mystring

我不了解Sybase,但从你的说法来看,在正确的位置使用TRIM()可能是另一种方法。一些SQL方言还有一个特殊的连接运算符,可以将字符串“粘”在一起。 - Darius X.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接