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行呢??? 展开
那么SELECT * FROM A WHERE a='111'能查询到,
但是现在SELECT * FROM A WHERE a='111 '也能查询到。
如果查询条件中带有空格,如何在WHERE a='111 '时查询不到这条数据而返回0行呢??? 展开
3个回答
展开全部
用replace把a列中的空格替换为另外的字符,再进行查询,这样就能筛掉有空格的行了。
追问
在SQL语句中能不能直接控制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为 a列 中 无 '111 ' 这个值
WHERE a like '111% '
WHERE a like '111% '
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试一下:
Select * From A Where a='111' And len(a)=3
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的需求吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询