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服务器的作用