`
langgufu
  • 浏览: 2307034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    Oracle的pl/sql和sqlplus

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

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

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

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

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

    oracle与SQL server的语法差异总结

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

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

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

    Oracle.ManagedDataAccess.Core.2.12.0-beta2

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

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

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

    oracle 讲义

    - `&lt;&gt;`表示不等于,`between`用于指定范围,`is null`或`is not null`检查字段是否为空值。 - `like`用于模式匹配,`_`代表任意单个字符,`%`代表零个或多个字符。 7. **ORDER BY子句**: - `order by`用于排序...

    oracle学习日志总结

    4. **避免使用星号(*)**:在`SELECT`语句中使用`*`意味着获取所有列,Oracle需要查询数据字典来获取列名,这会消耗额外的时间。指定所需的列名可提高查询效率。 5. **优化WHERE子句**:应根据索引顺序和范围大小...

    ORACLE数据库选择题.docx

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

    oracle AWR性能分析详解

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

    Oracle通配符,运算符的使用

    - 在Oracle中,撇号用于表示字符串中的特殊字符,如两个相邻的单引号表示一个实际的撇号。 - **示例**: - `SELECT * FROM suppliers WHERE supplier_name LIKE '%''%'`:此查询将返回所有供应商名称中包含撇号的...

    Oracle中的外连接

    Oracle中的外连接是数据库查询中的一种重要连接类型,它允许用户获取所有来自一个表的数据,即使这些数据在另一个表中没有匹配的记录。这与内连接不同,内连接只返回两个表中有匹配记录的结果。 首先,我们要理解外...

    第14章Oracle中的函数与表达式.pptx

    包括算术运算(加减乘除)、比较运算(等于、不等于、大于、小于等)、逻辑运算(AND、OR、NOT)等,用于构建复杂的查询条件。 14.6 Oracle中的特殊判式: 如`IFNULL`、`NVL`、`COALESCE`等,用于处理NULL值。 ...

Global site tag (gtag.js) - Google Analytics