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' が返されないのはなぜですか?

ありがとう

ボブ

4

1 に答える 1

3

これは、 すべての CHAR 値が max-length まで空白で埋められて@mystringいると宣言したためだと思われます。 char(30)

それを次のように宣言するとvarchar(30)、トリックが実行されます。

declare @mystring varchar(30)

select @mystring = 'abc' 

select 'mystring = ' + @mystring

SELECT @mystring = @mystring + 'xyz'

select 'mystring = ' + @mystring
于 2013-02-26T16:50:41.947 に答える