当前位置:数据库 > SQLServer >>

sqlserver的问题。高人赐教!!

今天遇到一个比较奇怪的问题。 我用Select distinct(message) from table_name 假设我查询出来(字符串)结果:abc eag bte三个结果字符串 我用内容出查询: select * from table_name where message='abc' 能够查询出结果。 但是另外的两个就查询不了结果。 但是我用模糊查询 Select * from table_name where message like '%e%%g%' 能够查询处理 如果eag这个内容 如果是eag! 也会查询出来! 想请问一下 为什么会出现这种情况?谢谢
答案:原因应该是你查询出的三个字符串,其中abc就是普通的abc,eag是前或者后有空白的字符
比如空格,或者制表符
你可以这样查询一下
select * from  table_name where ltrim(rtrim(message))='eag' 
如果能查出来可以再查是否有空格
select * from  table_name where message like '% %'
其他:你仔细看一下书应该就能明白了
distinct是去除重复项
message='abc' 是说message这一列必须是abc
like是包含有e和g的都能查出来
先仔细的熟悉一下关键字的含义吧 这种情况可能是系统默认的把你的那个表的名字定位abc

上一个:sql2005 在于sqlserver建立连接时出现与网络相关的或特定于实例的错误,求救啊我的q1142394341
下一个:sqlserver中的mssqlsrver服务器的作用

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,