`
freeskywcy
  • 浏览: 215583 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

关于Oracle中的不等于号

 
阅读更多
关于Oracle中的不等于号:



在Oracle中,

<>
!=
~=
^=

都是不等于号的意思。都可以使用。



但是奇怪是的, 我想拿出providerid 不是180000的商品时:(providerid 是Number类型的)

SELECT id, name  FROM product where providerid <> 180000;

执行这个语句时,providerid  is null  的记录不出来。也就是拿不到providerid  是null的商品。必须使用:

SELECT id, name  FROM product where providerid <> 180000 or providerid 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中的不等于号: 在Oracle中, &lt;&gt; != ~= ^= 都是不等于号的意思。都可以使用。 但是奇怪是的, 我想拿出price不是180000的商品时:(price是Number类型的) SELECT id, name FROM product where price&...

    oracle的索引学习

    oracle的索引学习,oracle的索引学习,oracle的索引学习

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL,博客主页是karenmorton....

    Oracle错误代码大全

    Oracle错误代码大全,遇到的大部分的ORA-00XXX错误都有。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...

    最全的oracle常用命令大全.txt

     很多时候,一般的ORACLE用户不知道如何有效地利用它。  dictionary 全部数据字典表的名称和解释,它有一个同义词dict dict_column 全部数据字典表里字段名称和解释 如果我们想查询跟索引有关的数据字典时,...

    Oracle9i的init.ora参数中文说明

    值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。 默认值: 从 NLS_TERRITORY 中获得 nls_date_language: 说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。...

    oracle数据库经典题目

    24. 在下列各选项中,关于同义词的描述哪一项是不正确的?( B ) A.同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称 B.在创建同义词时,所替代的模式对象必须存在 C.Oracle...

    ORACLE数据库sql语言 、函数及常用命令

    如果一个列内容为空值,则该列不等于任何值(包括空值)。 例如:列SAGE1、SAGE2的内容为空,列SAGE3内容为20,则下面的逻辑表达式全部为NULL:SAGE1=SAGE2、SAGE1&lt;&gt;SAGE2、SAGE1=SAGE3、SAGE3&gt;SAGE1。下面的逻辑...

    Oracle/MySQL以当前日期加顺番 生成编号

    //生成最大编号 规则为当前日期+6位顺番, //没有记录时,当前日期+000001 //当前日期比从数据库取得的最大日期大时, 当前日期+000001 //当前日期等于从数据库取得最大日期,顺番+1

    oracle详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    oracle培训资料

    WHERE子句中的条件可以是一个包含等号或不等号的条件表达式,也可以是一个含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比较运算符的条件式,还可以是由单一的条件表达通过逻辑运算符组合成复合条件。 3)ORDER BY...

    Oracle数据库中的级联查询、级联删除、级联更新操作教程

    在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior ...

    Oracle数据库基础学习资料整合

    Oracle数据库基础 任务一 1、修改上机的计算机上的文件: product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora product\11.1.0\db_1\NETWORK\ADMIN\listener.ora 把文件中的HOST后面的名称更改为...

    oracle中通配符和运算符的使用方法介绍

    用于where比较条件的有:  等于:=、&lt;...在Oracle中:  %(百分号): 用来表示任意数量的字符,或者可能根本没有字符。  _(下划线): 表示确切的未知字符。  ?(问号): 用来表示确切的未知字

    oracle数据导入导出等快捷操作

    更具自己的数据库地址和用户修改*.sql内部的数据,举例:数据库导入.sql中 userid=six/guan@orcl 修改等号后面的内容,内容为你配置的数据库连接。 file=E:\six.dmp 导出的文件路径 fromuser=six 资源所属用户 to...

    高级SQL优化(二)

    索引对不等号和NOT的限制如果WHERE条件中出现!=或者&lt;&gt;,即使该列建立了索引,则该索引也不会被使用;如果不恰当的使用了NOT,则索引也不会被使用。Oracle10g起,在基于CBO的优化器模式下Oralce会进行自动优化,但...

    Oracle递归查询start with connect by prior的用法

    一、基本语法 connect by递归查询基本语法是: select 1 from 表格 start with … connect by...prior:prior关键字可以放在等号的前面,也可以放在等号的后面,表示的意义是不一样的,比如 prior id = pid,就表示p

Global site tag (gtag.js) - Google Analytics