今天碰到一个Oracle不等于的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下
关于Oracle中的不等于号:
在Oracle中,
<>
!=
~=
^=
都是不等于号的意思。都可以使用。
但是奇怪是的, 我想拿出price不是180000的商品时:(price是Number类型的)
SELECT id, name FROM product where price<> 180000;
执行这个语句时,priceis null 的记录不出来。也就是拿不到price是null的商品。必须使用:
SELECT id, name FROM product where price<> 180000 or price is null;才行。
字符串的字段存在同样的问题。
记住:null只能通过is null或者is not null来判断,其它操作符与null操作都是false。
======================================================================================================
测试:select * from test where name<>'xn'。只能查出name非空的记录。去掉name<>'xn'就可以了。这种写法有问题。
然后用了instr(name,'xn')=0 来判断,如果name非空的话,判断还是有效的。如果name为空,这个判断又出问题了。不得已只得采取instr(concat(name,'xx'),'xn') = 0来判断,因为就算name为空,当和'xx'连接后,也会不为空的。
所以最后的sql语句为:
select * from test where instr(concat(name,'xx'),'xn') = 0 来查询name字段不等于'xn'的记录。
或者可以用 select * from test where nvl(name,'xx')<>'xn' 来查询name字段不等于'xn'的记录。
分享到:
相关推荐
在Oracle数据库中,不等于号(Not Equal To)有多种表达方式,包括 `<>`, `!=`, `~=` 和 `^=`。虽然这些符号在大多数情况下可以互换使用,但它们在处理`NULL`值时可能会产生不同的结果,这是本文讨论的重点。 在...
Oracle数据库中的索引是提升查询性能的关键工具,它允许数据库快速定位和检索数据。本篇文章将深入探讨Oracle索引的学习,重点关注索引的原理、类型、优缺点以及如何使用和分析执行计划。 首先,理解索引的基本概念...
除了上述通配符之外,Oracle SQL还支持一些其他符号,这些符号虽然不直接作为通配符使用,但在SQL查询中同样发挥着重要作用。 ##### 1. `=`、`>`、`、`、`>=`、`<>` - **含义**:比较运算符,用于比较两个值之间的...
在 Oracle 中,左联接是通过在等号左边用“(+)”符号来实现,而在 DB2 中左联接是通过“LEFT OUTER JOIN”来实现。 Oracle 与 DB2 之间存在着一定的对应关系,但它们之间也存在着一定的差异。了解这些差异对于...
首先,文档指出了创建表空间时可以使用autoextendon参数,这是Oracle数据库管理中的一个关键知识点。通过autoextendon设置,一旦表空间存储量超过其初始设定值,数据库将自动开始扩容。通过设置next参数可以指定每次...
ROWNUM只能使用小于等于(<, )符号,不能使用大于等于(>, >=),并且如果使用等号(=),只能等于1。另外,ROWNUM可以与子查询结合,通过ORDER BY排序后,利用ROWNUM创建顺序号,如:`SELECT * FROM (SELECT a.*, ...
这是因为NULL值在SQL中具有特殊的意义,不能使用等于(=)或不等于()运算符来比较。 2. Oracle的系统预定义角色: 在Oracle中,系统预定义角色如DBA、RESOURCE等提供了对数据库进行管理或特定操作的权限。DBA角色...
Oracle.ManagedDataAccess.Core.2.12.0-beta2 是Oracle公司为.NET Core平台提供的官方数据库访问驱动,主要用于在.NET Core应用程序中连接并操作Oracle数据库。这个版本号表明它是2.12版本的第二个β(beta)测试版...
- 对于不等于操作`<>`,Oracle可能不会使用索引,除非索引是反向键索引。在大多数情况下,使用等值比较(`=`)更有利于索引的使用。 6. **IN和NOT IN子句**: - 当`IN`或`NOT IN`子句中的列表非常大时,全表扫描...
数据库最大连接数修改与 Oracle ...2. shutdown immediate:立即关闭数据库,数据库并不立即关闭,而是在 Oracle 执行某些清除工作后才关闭。 3. shutdown abort:直接关闭数据库,正在访问数据库的会话会被突然终止。
Oracle的PL/SQL是一种强大的编程语言,用于在Oracle数据库中执行复杂的数据库操作。它结合了SQL的查询功能和过程性编程语言的控制结构,使得数据库管理和应用开发更为灵活高效。SQL*Plus是Oracle提供的一种命令行...
不等号`<>`用于表示不等于某个值。 在查询结果排序方面,`ORDER BY`是关键。默认情况下,`ASC`表示升序,`DESC`表示降序。例如,`SELECT * FROM employees ORDER BY salary DESC`将按工资降序排列员工。 接下来,...
4. 修改表名的命令:在Oracle中,使用`RENAME`语句可以直接改表名,但题目中提供的其他选项并不正确。`ALTER TABLE RENAME`实际上是`ALTER TABLE`的一部分,而`ALTER TABLE MOVE`用于更改表的存储属性,`ALTER TABLE...
在AWR报告中,包括了数据库实例的多种信息,如数据库名称、数据库ID、实例标识号、版本号、是否为RAC架构、主机名等。同时,报告还会展示快照的标识、快照时间、活动会话数、每个会话的游标数、数据库耗时(DBTime)...
- **比较运算符**:用于比较两个表达式的值,支持等号(=)、不等于(!=)、小于(<)、大于(>)、小于等于()、大于等于(>=)等。 - **逻辑运算符**:AND、OR、NOT,用于组合条件。 - **集合运算符**:UNION、UNION ALL、...
例如,如果你想要知道Oracle数据库的主版本号,可以在SQL*Plus环境中执行以下命令: ```sql SET SERVEROUT ON EXEC DBMS_OUTPUT.PUT_LINE (DBMS_DB_VERSION.VERSION); ``` 这将直接输出数据库的主版本号,如10代表...