欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql语句like'%0.%'查询不到数据的有关问题

更新时间: 2014-01-05 02:12:40 责任编辑: Author_N1

 

sql语句like'%0.%'查询不到数据的问题
表 table
字段 a   varchar2(10),  b number(10,2)
数据库记录:
      a           b
     a1          0.01
     a2          0.02
     a3          1.01
     a4          1.11
     a5          10.01
我想通过sql语句把记录包含"0."的记录给查询出来
下面是我写的sql语句:
select a from table where b like '%0.%';
这样写查询不到数据,where条件修改成"0"或者"."的都可以查询到数据。
想知道为什么“0.”就查询不到数据?是什么特殊字符还是有什么限制?
想查询出正确的结果,应该怎么写?
--参考方法--
b like...
会先把b转换成字符类型

如图,数据类型转换后,小数点前的0会被去掉,所以你就查不到数据了
如你的SQL 只有10.01会返回
--参考方法--
select b from table where b < 1 or b like '%0.%';
这样能达到你的效果,只是感觉比较笨,呵呵!
--参考方法--

with tab_char as (
select 'a1'as a,0.01 as b from dual
union 
select 'a2',0.02 from dual
union 
select 'a3',1.01 from dual
union 
select 'a4',1.11 from dual
union 
select 'a5',10.01 from dual
)
select * from tab_char t where to_char(t.b,'990.99') like '%0.%';

--参考方法--
select b from table where substr(replace(b,'-',''),instr(b, '.')-1, 1) in ('.','0');

我现在做的数据是这样的:
-1
0.3
10.1
21.1
-0.1

用这个SQL能查出来
0.3
10.1
-0.1

如果还有好的方法,拿出来一起分享啊!
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:40
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6996/
本文WWW.DOC100.NET DOC100.NET版权所有。