【问题标题】:unexpected result concatenating simple strings in Sybase SQL在 Sybase SQL 中连接简单字符串的意外结果
【发布时间】:2013-02-26 16:27:38
【问题描述】:

我在 Sybase 上使用非常简单的 SQL 得到了意想不到的结果。

declare @mystring char(30)

select @mystring = 'abc'

select 'mystring = ' + @mystring

select @mystring = @mystring + 'xyz'

select 'mystring = ' + @mystring

这会返回:

mystring = abc                           
mystring = abc   

为什么最后一个选择不返回'abcxyz'?

谢谢

鲍勃

【问题讨论】:

    标签: sql string concatenation sybase variable-assignment


    【解决方案1】:

    我怀疑这是因为您已将 @mystring 声明为 char(30)All CHAR values are blank padded up to max-length

    将其声明为varchar(30) 即可:

    declare @mystring varchar(30)
    
    select @mystring = 'abc' 
    
    select 'mystring = ' + @mystring
    
    SELECT @mystring = @mystring + 'xyz'
    
    select 'mystring = ' + @mystring
    

    【讨论】:

    • 我不了解 Sybase,但根据您的说法,在正确的位置使用 TRIM() 将是另一种方法。一些 SQL 方言还有一个特殊的连接运算符,可以将字符串“挤压”在一起
    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多