|
查看: 1706|回复: 5
|
SQL2005里奇怪的事... 已解决,不奇怪了
[复制链接]
|
|
|
例子:
Table [TheTable] 两个column:
- [TheKey] varchar(30) not null (primary key)
- [TheValue] varchar(50) null
Sample Data:
INSERT INTO TheTable VALUES ('key1', 'test value')
INSERT INTO TheTable VALUES ('key2', 'test value')
INSERT INTO TheTable VALUES ('key3', 'test value')
INSERT INTO TheTable VALUES ('key4', 'test value ')
INSERT INTO TheTable VALUES ('key5', 'test value')
注意key4的test value后面有一个blank space。
当我select data的时候...
Select全部
SELECT * FROM TheTable
TheKey TheValue
------------------------------ --------------------------------------------------
key1 test value
key2 test value
key3 test value
key4 test value
key5 test value
Select test value后面没有blank space
SELECT * FROM TheTable WHERE TheValue = 'test value'
TheKey TheValue
------------------------------ --------------------------------------------------
key1 test value
key2 test value
key3 test value
key4 test value
key5 test value
Select test value后面有blank space
SELECT * FROM TheTable WHERE TheValue = 'test value '
TheKey TheValue
------------------------------ --------------------------------------------------
key1 test value
key2 test value
key3 test value
key4 test value
key5 test value
怎么会这样???
[ 本帖最后由 chuinkit 于 5-2-2009 10:54 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 5-2-2009 10:15 AM
|
显示全部楼层
|
正常阿!通常最后的blank space 会被 ignore . |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-2-2009 10:22 AM
|
显示全部楼层
回复 2# cikare1 的帖子
|
如果我要select value后面有blank space的,应该怎样select? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-2-2009 10:49 AM
|
显示全部楼层
找到答案了!
用LIKE operator
Select test value后面没有blank space
SELECT * FROM TheTable WHERE TheValue LIKE 'test value'
TheKey TheValue
------------------------------ --------------------------------------------------
key1 test value
key2 test value
key3 test value
key5 test value
Select test value后面有blank space
SELECT * FROM TheTable WHERE TheValue LIKE 'test value '
TheKey TheValue
------------------------------ --------------------------------------------------
key4 test value
[ 本帖最后由 chuinkit 于 5-2-2009 10:50 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 16-7-2009 09:14 PM
|
显示全部楼层
也可以 :
SELECT * FROM TheTable WHERE TheValue = 'test value '
AND DATALENGTH(TheValue) = DATALENGTH('test value '); |
|
|
|
|
|
|
|
|
|
|
发表于 29-7-2009 11:38 AM
|
显示全部楼层
|
如果你的搜寻的RECORD超过百万, 用LIKE 会让你的搜寻时间便得很长。 所以能够避免用LIKE就别用 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|