比如在SQL中搜索数字列

时间:2013-04-24 08:22:13

标签: sql oracle

如何在SQL中的数字列上进行like搜索?

我想要like '0.0000%'的数字。

我试过

select * from emp where emp_id & '' like '123%'
select * from emp where CONVERT(varchar(20), emp_id) like '123%'

但是徒劳无功。

请帮帮我

3 个答案:

答案 0 :(得分:6)

无论您使用哪种DBMS并假设您有正当理由这样做,您有几种方法可以解决这些问题。我现在可以想到三个:

  1. 将数字转换为字符串并在此处使用LIKE运算符:

    select *
    from emp
    where to_char(emp_id) like '123%';
    
  2. 直接使用数学运算符(例如Andrey建议),例如:

    select *
    from table
    where num between 0 and 0.0001;
    
  3. 构造一个数学表达式(实际上,这只是方法2的另一种情况),例如:

    select *
    from table
    where abs(num - round(num, 5)) < 0.00001;
    

答案 1 :(得分:2)

使用比较运算符(&gt;和&lt;):

select * from table where num > 0 and num < 0.00001

答案 2 :(得分:0)

如果&lt; 1表示0.0001具有3个或更多零,则从双精度选择0.0001 * 1000。 所以我喜欢 select * from emp where emp_id * 10000&lt; 1