如何实现字符串的精确比较,即'abc '与'abc'比较结果是不同的?
如何实现字符串的精确比较,即 'abc '与 'abc '比较结果是不同的?
---------
我试过, 'abc '与 'abc '用等号比较结果是相等的。
用什么方法比较结果是不同的呢?
还有:为何用等号比较不能实现精确比较呢?
------解决方案--------------------你把右边加个字符啊例如“;”
'abc '+ '; ' 不等于 'abc '+ '; '
------解决方案--------------------我觉得是当前的排序规则造成的,你试着修改一下排序规则。
------解决方案--------------------kadboy(想结交朋友 Q:7680941 guangzhouwy@126.com) ( ) 信誉:100 Blog 2007-03-29 13:11:50 得分: 0
你把右边加个字符啊例如“;”
'abc '+ '; ' 不等于 'abc '+ '; '
正确.
或 'abc ' = 'abc ' and len( 'abc ') = len( 'abc ')
------解决方案--------------------用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
------解决方案--------------------To wojila(阳阳)
-----------
你abc和aaa比,當然false了
------解决方案--------------------两个字符串各加个一个同样的字符进行比较
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
------解决方案--------------------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 '
------解决方案---------------------- 如何实现字符串的精确比较,即 '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 '不相等 '