if (' '='')
select 1
else
select 2
-----------
1(1 行受影响)
偶比较菜,请教一下

解决方案 »

  1.   

    要比较空格时,需要在结尾加个字符
    if (' '+'a'=''+'a')
    select 1
    else
    select 2
      

  2.   

    if (' a'='a')
    select 1
    else
    select 2
      

  3.   

    包含尾随空格的比较,要加一个字符长度比较:
    if (' '='' and len(' ')=len(''))
    select 1
    else
    select 2
      

  4.   

    如何 SQL Server 比较带有尾随空格的字符串
    http://support.microsoft.com/kb/316626
      

  5.   


    declare @a varchar(10);set @a='aa     '
    declare @b varchar(10);set @b='aa'--第一种方式(两边都加上常量)
    if(@a+'a'=@b+'a')
    select 1
    --第二种方式(同时判断长度)
    if(@a=@b and len(@a)=len(@b))
    select 2
    --第三种方式(替换空格未char(13))
    if(replace(@a,' ',char(13))=replace(@b,' ',char(13)))
    select 3
    --第四种方式(都转成varbinary类型后再比较)
    if(cast(@a as varbinary) = cast(@b as varbinary))
    select 4
    --第五中方式(判断datalength)
    if(@a=@b and datalength(@a)=datalength(@b))
    select 5/*结果

    */
    --说明第二种方式不行!