如何实现字符串的精确比较,即'abc    '与'abc'比较结果是不同的?
---------
我试过,'abc      '与'abc'用等号比较结果是相等的。
用什么方法比较结果是不同的呢?
还有:为何用等号比较不能实现精确比较呢?

解决方案 »

  1.   

    你把右边加个字符啊例如“;”
    'abc      '+';'  不等于  'abc'+';'
      

  2.   

    kadboy(想结交朋友 Q:7680941 [email protected]) ( ) 信誉:100    Blog  2007-03-29 13:11:50  得分: 0  
     
     
       你把右边加个字符啊例如“;”
    'abc      '+';'  不等于  'abc'+';'
      
     
    正确.或 'abc      ' = 'abc' and len('abc      ') = len('abc')
      

  3.   

    楼住自己试试吧~~~~
    declare @a char(20),@b char(20)
    set  @a='abc   '
    set  @b='aaa'
    if (@a=@b) 
    print 'ture'
    else
    print 'false'
      

  4.   

    用len()好像不行的,len()會把後面的空格去掉
    print len('abc      ')
    ----
    3--可以用like來比較,
    if 'abc' like 'abc     '
    print 1
    else
    print 0-----
    0--但是like只適用比較後面那個子串帶空格,反過來就比不了
    if 'abc     ' like 'abc'
    print 1
    else
    print 0----------
    1
      

  5.   

    To wojila(阳阳) 
    -----------
    你abc和aaa比,當然false了
      

  6.   

    两个字符串各加个一个同样的字符进行比较declare @a varchar(20),@b varchar(20)
    set  @a='abc   '
    set  @b='abc'
    if @a+'1'=@b+'1'
    print 'ture'
    else
    print 'false'
    (所影响的行数为 1 行)false
      

  7.   

    To wojila(阳阳)
    -----------
    你abc和aaa比,當然false了
    -----------------
    阳阳呀,abc与aaa会相同吧,脑子进水了。
      

  8.   

    declare @s1 varchar(10),@s2 varchar(10)
    set @s1='aaa     '
    set @s2='aaa'--可以用下面比较(结果是不等)
    if @s1+'1'=@s2+'1'
        print '1'
    else
    print '0'--不能用下面比较(结果是相等)
    if @s1=@s2 and len(@s1)=len(@s2)
        print '1'
    else
    print '0'
      

  9.   

    -- 如何实现字符串的精确比较,即'abc '与'abc'比较结果是不同的? declare @a varchar(100)
    declare @b varchar(100)set @a='abc '
    set @b='abc' --常规判断认为相等
    if @a=@b
        print '相等'
    else
        print '不相等'
    --后面加字符进行判断,即不相等if @a + 'a' = @b + 'a'
        print '相等'
    else
        print '不相等'