MSSQL,查询条件中带有空格时,如何区分出带空格和不带空格的数据?

比如,A表中列a中有值111那么SELECT*FROMAWHEREa='111'能查询到,但是现在SELECT*FROMAWHEREa='111'也能查询到。如果查询条件... 比如,A表中列a中有值 111
那么SELECT * FROM A WHERE a='111'能查询到,
但是现在SELECT * FROM A WHERE a='111 '也能查询到。
如果查询条件中带有空格,如何在WHERE a='111 '时查询不到这条数据而返回0行呢???
展开
 我来答
shanmididi
2013-01-31
知道答主
回答量:26
采纳率:0%
帮助的人:20.1万
展开全部
用replace把a列中的空格替换为另外的字符,再进行查询,这样就能筛掉有空格的行了。
追问
在SQL语句中能不能直接控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rkc009
2013-01-30 · TA获得超过1499个赞
知道大有可为答主
回答量:2098
采纳率:60%
帮助的人:1676万
展开全部
因为 a列 中 无 '111 ' 这个值

WHERE a like '111% '
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文走520
2013-01-31 · TA获得超过525个赞
知道小有建树答主
回答量:267
采纳率:50%
帮助的人:170万
展开全部
试一下:

Select * From A Where a='111' And len(a)=3
更多追问追答
追问
但是在程序里的时候我是不知道len=多少的,难道要在程序中计算出来么?
SQL里有没有比较严格的查询方法,能把末尾的空格识别到的呢?
追答
刚才专门用数据库试了一下,在数据库中,如果字段为“111      ”,那么len('111      ')反回的结果为3

看来我想法太单纯了,后来想了个还凑合的办法,如下:

Select * From A where replace(a,' ','_')='111'

上面能够适用大多数情况了,但也有个小问题,比如,LZ想查'11 111'这样的数据时,上面的办法查不出来,看看能不能满足LZ的需求吧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式