字符串当作数值进行比较

简介: 1. 今天在做项目时,发现从数据库中取出的结果总与预期的不一样,最后发现有人把一条sql把字符串当作数值进行比较大小,模拟如下:创建表:SQL> create table t(t1 n...

1. 今天在做项目时,发现从数据库中取出的结果总与预期的不一样,最后发现有人把一条sql把字符串当作数值进行比较大小,模拟如下:


创建表:

SQL> create table t(t1 number(3),t2 varchar2(3));

插入数据:

SQL> insert into t values(1,'1');


SQL> insert into t values(2,'5');


SQL> insert into t values(3,'11');


SQL> insert into t values(4,'15');


SQL> insert into t values(5,'111');


SQL> insert into t values(6,'155');


测试:

SQL> select * from t where t2>16;


        T1 T2
---------- ---
         5 111
         6 155



SQL> select * from t where t2>'16';


        T1 T2
---------- ---
         2 5

注意,当把字符串当做数值进行比较时,返回两行数据,而直接进行字符串比较则只返回一行数据,而且两条sql所返回的数据是不一样的,

Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,所以上述两条sql是完全不相等,在以后的开发中,

一定要正确设定列的数据类型,不能让oracle进行隐式类型转换,不然结果与你想要的相差甚远。


目录
相关文章
|
5月前
|
运维 安全 持续交付
Dockerfile中小型企业实战指南
本文档旨在为中小企业提供一份 实用、易懂 的 Dockerfile 实践指南。我们深知中小企业在技术标准化、快速迭代和资源有效利用方面的需求,因此本教程将涵盖从基础概念到进阶实战的多层次 Docker 镜像构建方法,重点关注如何在有限资源下,通过规范的 Dockerfile 来提升开发、测试和部署效率。无论您是初学者还是有一定经验的开发者、运维人员,都能从中获益,快速掌握不同场景下的镜像制作和优化技巧,最终构建出 安全、高效、轻量且易于维护 的容器镜像。
195 7
|
关系型数据库 MySQL 数据库
安装mysql一站式详细操作【含解决没有data目录、查找初始密码(mysql5.7+)】
安装mysql一站式详细操作【含解决没有data目录、查找初始密码(mysql5.7+)】
安装mysql一站式详细操作【含解决没有data目录、查找初始密码(mysql5.7+)】
|
存储 分布式计算 搜索推荐
推荐系统常用数据集
推荐系统常用数据集
1806 0
推荐系统常用数据集
|
并行计算 算法 编译器
开创性提供量子计算机从软到硬的完整可编程性!Delft提出可执行量子计算指令集eQASM
传统计算机硬件的计算单元与控制单元一样,都是数字电路,能够轻易集成在一块处理器上;传统软件输出的二进制代码则可以直接在处理器上运行。量子计算机与此不同,其计算单元是量子比特,而控制媒介是模拟信号,通常需要由独立于量子芯片的控制单元产生。额外的量子控制架构,作为量子软件与量子硬件之间的桥梁,构成了量子计算机与传统计算机在系统结构上最核心的区别之一。但在量子计算工程领域,以往量子软件与量子硬件的研究相对独立,这导致二者的设计及实现难以有机地联接在一起。
527 0
开创性提供量子计算机从软到硬的完整可编程性!Delft提出可执行量子计算指令集eQASM
|
Linux 网络安全 开发工具
Python - poetry(1)包管理利器的入门介绍
Python - poetry(1)包管理利器的入门介绍
1248 0
|
SQL 小程序 JavaScript
美团 5 大最受欢迎的开源项目,牛批!
美团 5 大最受欢迎的开源项目,牛批!
773 0
|
监控 网络虚拟化 网络架构
|
存储 NoSQL 大数据
结构化数据存储,如何设计才能满足需求?
阿里妹导读:任何应用系统都离不开对数据的处理,数据也是驱动业务创新以及向智能化发展最核心的东西。数据处理的技术已经是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构成。应用系统负责处理业务逻辑,而数据系统负责处理数据。
5343 0