sql - 就像在 SQL 中搜索数字列一样

标签 sql oracle

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

我想要类似'0.0000%'的数字。

我试过了

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

但徒劳无功。

请帮帮我

最佳答案

无论您使用的是哪种 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;
    

关于sql - 就像在 SQL 中搜索数字列一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16186962/

相关文章:

sql - Laravel Controller 在 save() 处插入两个 id 列

sql - 查询末尾的 (+) 是什么?

Oracle.ManagedDataAccess.EntityFramework-ORA-01918 : user 'dbo' does not exist

oracle - "ORA-12560: TNS:protocol adapter error"使用完整连接字符串和 EZCONNECT 绕过 tnsnames.ora 时

java - Weblogic 10.3开启管理员端口后无法访问

sql - 雪花子查询

java - 插入时HIbernate语法sql错误

mysql - 使用 SQL,尝试使用日期范围创建查询,但某些值是 0000-00-00,需要替换它们

sql - Oracle SQL 触发器 - DBMS_OUTPUT.PUT_LINE

oracle - 在 Oracle SQL 中搜索包装的包/过程