`

Oracle中的不等于号

阅读更多

今天碰到一个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中的不等于号

    在Oracle数据库中,不等于号(Not Equal To)有多种表达方式,包括 `&lt;&gt;`, `!=`, `~=` 和 `^=`。虽然这些符号在大多数情况下可以互换使用,但它们在处理`NULL`值时可能会产生不同的结果,这是本文讨论的重点。 在...

    oracle的索引学习

    Oracle数据库中的索引是提升查询性能的关键工具,它允许数据库快速定位和检索数据。本篇文章将深入探讨Oracle索引的学习,重点关注索引的原理、类型、优缺点以及如何使用和分析执行计划。 首先,理解索引的基本概念...

    Oracle中常用的通配符

    除了上述通配符之外,Oracle SQL还支持一些其他符号,这些符号虽然不直接作为通配符使用,但在SQL查询中同样发挥着重要作用。 ##### 1. `=`、`&gt;`、`、`、`&gt;=`、`&lt;&gt;` - **含义**:比较运算符,用于比较两个值之间的...

    Oracle与DB2的对应关系

    在 Oracle 中,左联接是通过在等号左边用“(+)”符号来实现,而在 DB2 中左联接是通过“LEFT OUTER JOIN”来实现。 Oracle 与 DB2 之间存在着一定的对应关系,但它们之间也存在着一定的差异。了解这些差异对于...

    oracle数据库从入门到精通.pdf

    首先,文档指出了创建表空间时可以使用autoextendon参数,这是Oracle数据库管理中的一个关键知识点。通过autoextendon设置,一旦表空间存储量超过其初始设定值,数据库将自动开始扩容。通过设置next参数可以指定每次...

    oracle与SQL server的语法差异总结

    ROWNUM只能使用小于等于(&lt;, )符号,不能使用大于等于(&gt;, &gt;=),并且如果使用等号(=),只能等于1。另外,ROWNUM可以与子查询结合,通过ORDER BY排序后,利用ROWNUM创建顺序号,如:`SELECT * FROM (SELECT a.*, ...

    Oracle数据库试题题(附答案).pdf

    这是因为NULL值在SQL中具有特殊的意义,不能使用等于(=)或不等于()运算符来比较。 2. Oracle的系统预定义角色: 在Oracle中,系统预定义角色如DBA、RESOURCE等提供了对数据库进行管理或特定操作的权限。DBA角色...

    Oracle.ManagedDataAccess.Core.2.12.0-beta2

    Oracle.ManagedDataAccess.Core.2.12.0-beta2 是Oracle公司为.NET Core平台提供的官方数据库访问驱动,主要用于在.NET Core应用程序中连接并操作Oracle数据库。这个版本号表明它是2.12版本的第二个β(beta)测试版...

    数据库面试题5 oracle笔试 oracle例题

    - 对于不等于操作`&lt;&gt;`,Oracle可能不会使用索引,除非索引是反向键索引。在大多数情况下,使用等值比较(`=`)更有利于索引的使用。 6. **IN和NOT IN子句**: - 当`IN`或`NOT IN`子句中的列表非常大时,全表扫描...

    修改数据库最大连接数以及linux系统下ORACLE数据库启动多实例参照.pdf

    数据库最大连接数修改与 Oracle ...2. shutdown immediate:立即关闭数据库,数据库并不立即关闭,而是在 Oracle 执行某些清除工作后才关闭。 3. shutdown abort:直接关闭数据库,正在访问数据库的会话会被突然终止。

    Oracle的pl/sql和sqlplus

    Oracle的PL/SQL是一种强大的编程语言,用于在Oracle数据库中执行复杂的数据库操作。它结合了SQL的查询功能和过程性编程语言的控制结构,使得数据库管理和应用开发更为灵活高效。SQL*Plus是Oracle提供的一种命令行...

    Oracle学习查询语句

    不等号`&lt;&gt;`用于表示不等于某个值。 在查询结果排序方面,`ORDER BY`是关键。默认情况下,`ASC`表示升序,`DESC`表示降序。例如,`SELECT * FROM employees ORDER BY salary DESC`将按工资降序排列员工。 接下来,...

    ORACLE数据库选择题.docx

    4. 修改表名的命令:在Oracle中,使用`RENAME`语句可以直接改表名,但题目中提供的其他选项并不正确。`ALTER TABLE RENAME`实际上是`ALTER TABLE`的一部分,而`ALTER TABLE MOVE`用于更改表的存储属性,`ALTER TABLE...

    oracle AWR性能分析详解

    在AWR报告中,包括了数据库实例的多种信息,如数据库名称、数据库ID、实例标识号、版本号、是否为RAC架构、主机名等。同时,报告还会展示快照的标识、快照时间、活动会话数、每个会话的游标数、数据库耗时(DBTime)...

    Oracle 11g学习笔记基础篇(pdf)

    - **比较运算符**:用于比较两个表达式的值,支持等号(=)、不等于(!=)、小于(&lt;)、大于(&gt;)、小于等于()、大于等于(&gt;=)等。 - **逻辑运算符**:AND、OR、NOT,用于组合条件。 - **集合运算符**:UNION、UNION ALL、...

    查找Oracle版本信息的简便方法

    例如,如果你想要知道Oracle数据库的主版本号,可以在SQL*Plus环境中执行以下命令: ```sql SET SERVEROUT ON EXEC DBMS_OUTPUT.PUT_LINE (DBMS_DB_VERSION.VERSION); ``` 这将直接输出数据库的主版本号,如10代表...

Global site tag (gtag.js) - Google Analytics