📄 265.html
字号:
KING 5000<br><br>---- 条 件"sal not between null and 3000" 等 价 于sal3000, 类 似 前 述(3) 的 第 一 句, 结 果 返 回sal>3000 的 行。 <br><br>---- 下 表 为 比 较 操 作 符 和 空 值 的 小 结: <br><br>---- 比 较 操 作 符 <br><br>---- 表 达 式( 例:A、B 是NULL、C=10) <br><br>---- 结 果 <br><br>IS NULL、IS NOT NULL<br>A IS NULL<br>TRUE<br><br>A IS NOT NULL<br>FALSE<br><br>C IS NULL<br>FALSE<br><br>C IS NOT NULL<br>TRUE<br>=、!=、>=、< =、>、< <br>A = NULL<br>NULL<br><br>A > NULL<br>NULL<br><br>C = NULL<br>NULL<br><br>C > NULL<br>NULL<br>IN (=ANY)<br>A IN (10,NULL)<br>NULL<br><br>C IN (10,NULL)<br>TRUE<br><br>C IN (20,NULL)<br>NULL<br>NOT IN <br>( 等 价 于 !=ALL)<br>A NOT IN (20,NULL)<br>NULL<br><br>C NOT IN (20,NULL)<br>FALSE<br><br>C NOT IN (10,NULL)<br>NULL<br>ANY,SOME<br>A > ANY(5,NULL)<br>NULL<br><br>C > ANY(5,NULL)<br>TRUE<br><br>C > ANY(15,NULL)<br>NULL<br>ALL<br>A > ALL(5,NULL)<br>NULL<br><br>C > ALL(5,NULL)<br>NULL<br><br>C > ALL(15,NULL)<br>FALSE<br>(NOT)BETWEEN<br>A BETWEEN 5 AND NULL<br>NULL<br><br>C BETWEEN 5 AND NULL<br>NULL<br><br>C BETWEEN 15 AND NULL<br>FALSE<br><br>A NOT BETWEEN 5 AND NULL<br>NULL<br><br>C NOT BETWEEN 5 AND NULL<br>NULL<br><br>C NOT BETWEEN 15 AND NULL<br>TRUE<br><br>---- 3、 空 值 和 算 术、 字 符 操 作 符 <br><br>---- (1) 算 术 操 作 符: 空 值 不 等 价 于0, 任 何 含 有 空 值 的 算 术 表 达 式 其 运 算 结 果 都 为 空 值, 例 如 空 值 加10 为 空 值。 <br><br>---- (2) 字 符 操 作 符||: 因 为ORACLE 目 前 处 理 零 个 字 符 值 的 方 法 与 处 理 空 值 的 方 法 相 同( 日 后 的 版 本 中 不 一 定 仍 然 如 此), 所 以 对 于||, 空 值 等 价 于 零 个 字 符 值。 例: <br><br>SQL >select ename,mgr,ename||mgr,sal,comm,sal+comm from emp;<br>ENAME MGR ENAME||MGR SAL COMM SAL+COMM<br>---------- --------- ------------- --------- --------- ---------<br>SMITH 7902 SMITH7902 800 <br>ALLEN 7698 ALLEN7698 1600 300 1900<br>WARD 7698 WARD7698 1250 500 1750<br>JONES 7839 JONES7839 2975 <br>MARTIN 7698 MARTIN7698 1250 1400 2650<br>BLAKE 7839 BLAKE7839 2850 <br>CLARK 7839 CLARK7839 2450 <br>SCOTT 7566 SCOTT7566 3000 <br>KING KING 5000 <br>TURNER 7698 TURNER7698 1500 0 1500<br>ADAMS 7788 ADAMS7788 1100 <br>JAMES 7698 JAMES7698 950 <br>FORD 7566 FORD7566 3000 <br>MILLER 7782 MILLER7782 1300 <br><br>---- 我 们 可 以 看 到, 凡mgr 为 空 值 的,ename||mgr 结 果 等 于ename; 凡 是comm 为 空 值 的 行,sal+comm 均 为 空 值。 <br><br>---- 四、 空 值 和 函 数 <br><br>---- 1 . 空 值 和 度 量 函 数 <br><br>---- 对 于 度 量 函 数, 如 果 给 定 的 参 数 为 空 值, 则 其(NVL、TRANSLATE 除 外) 返 回 值 为 空 值。 如 下 例 中 的ABS(COMM), 如 果COMM 为 空 值,ABS(COMM) 为 空 值。 <br><br>SQL > select ename,sal,comm,abs(comm) from emp where sal< 1500;<br>ENAME SAL COMM ABS(COMM)<br>---------- --------- --------- ---------<br>SMITH 800<br>WARD 1250 500 500<br>MARTIN 1250 1400 1400<br>ADAMS 1100<br>JAMES 950<br>MILLER 1300<br><br>---- 2. 空 值 和 组 函 数 <br><br>---- 组 函 数 忽 略 空 值。 在 实 际 应 用 中, 根 据 需 要 可 利 用nvl 函 数 用 零 代 替 空 值。 例: <br><br>SQL >select count(comm),sum(comm),avg(comm) from emp;<br>COUNT(COMM) SUM(COMM) AVG(COMM)<br>----------- --------- ---------<br> 4 2200 550<br>SQL >select count(nvl(comm,0)),sum(nvl(comm,0)),avg(nvl(comm,0))<br>from emp;<br>COUNT(NVL(COMM,0)) SUM(NVL(COMM,0)) AVG(NVL(COMM,0))<br>------------------ ---------------- ----------------<br> 14 2200 157.14286<br><br>---- 第 一 个SELECT 语 句 忽 略COMM 为 空 值 的 行, 第 二 个SELECT 语 句 使 用NVL 函 数 统 计 了 所 有 的COMM, 所 以 它 们 统 计 的 个 数、 平 均 值 都 不 相 同。 另 外 需 要 注 意 的 是, 在 利 用 组 函 数 进 行 数 据 处 理 时, 不 同 的 写 法 具 有 不 同 的 不 同 含 义, 在 实 际 应 用 中 应 灵 活 掌 握。 例 如: <br><br>SQL >select deptno,sum(sal),sum(comm), <br>sum(sal+comm),sum(sal)+sum(comm),sum(nvl(sal,0)+nvl(comm,0)) <br>from emp<br>group by deptno;<br> DEPTNO SUM(SAL) SUM(COMM) SUM(SAL+COMM) SUM(SAL)<br>+SUM(COMM) SUM(NVL(SAL,0)+NVL(COMM,0))<br>--------- --------- --------- ------------- ------- <br> 10 8750 8750<br> 20 10875 10875<br> 30 9400 2200 7800 11600 11600<br><br>---- 可 以 看 到SUM(SAL+COMM)、SUM(SAL)+SUM(COMM)、 SUM(NVL(SAL,0)+NVL(COMM,0)) 的 区 别:SUM(SAL+COMM) 为 先 加 然 后 计 算 各 行 的 和, 如 果SAL、COMM 中 有 一 个 为NULL, 则 该 行 忽 略 不 计;SUM(SAL)+SUM(COMM) 为 先 计 算 各 行 的 合 计 然 后 再 加,SAL、COMM 中 的NULL 都 忽 略 不 计, 但 如 果 SUM(SAL)、SUM(COMM) 二 者 的 结 果 之 中 有 一 个 为NULL, 则 二 者 之 和 为NULL; 在SUM(NVL(SAL,0)+NVL(COMM,0)) 里,SAL、COMM 中 的NULL 按0 处 理。 <br><br>---- 五、 空 值 的 其 它 特 性 <br><br>---- 1. 空 值 在 排 序 时 大 于 任 何 值。 例 如: <br><br>SQL > select ename,comm from emp where deptno='30' order by comm;<br>ENAME COMM<br>---------- ---------<br>TURNER 0<br>ALLEN 300<br>WARD 500<br>MARTIN 1400<br>BLAKE <br>JAMES<br><br>---- 2. 空 值 不 能 被 索 引。 虽 然 在 某 列 上 建 立 了 索 引, 但 是 对 该 列 的 空 值 查 询 来 说, 因 为 空 值 没 有 被 索 引, 所 以 不 能 改 善 查 询 的 效 率。 例 如 下 面 的 查 询 不 能 利 用 在MGR 列 上 创 建 的 索 引。 <br><br>SQL >select ename from emp where mgr is null;<br>ENAME<br>----------<br>KING<br><br>---- 另 外 正 是 因 为 空 值 不 被 索 引, 所 以 可 在 含 有 空 值 的 列 上 建 立 唯 一 性 索 引(UNIQUE INDEX)。 例 如, 可 以 在EMP 表 的COMM 列 上 建 立 唯 一 性 索 引: <br><br>SQL > create unique index emp_comm on emp(comm);<br>Index created.<br><br></p></td>
</tr>
</table>
<p>
<CENTER><a href="http://www.jsp001.com/forum/newreply.php?action=newreply&threadid=265">点这里对该文章发表评论</a></CENTER>
<p>该文章总得分是 <font color=red>0</font> 分,你认为它对你有帮助吗?
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=265&intVote=4","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>非常多</a>](<font color=red>0</font>)
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=265&intVote=2","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>有一些</a>](<font color=red>0</font>)
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=265&intVote=1","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>无帮助</a>](<font color=red>0</font>)
[<a href=javascript:void(0) onclick=window.open("http://www.jsp001.com/forum/codeVote.php?threadid=265&intVote=-1","","menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=70,height=40,top=0,left=0")>是灌水</a>](<font color=red>0</font>) </p>
<script language="javascript" src="http://www.jsp001.com/include/read_thread_script.php?threadid=265"></script>
<p><CENTER>
Copyright © 2001 - 2009 JSP001.com . All Rights Reserved <P>
<IMG SRC="../image/jsp001_small_logo.gif" WIDTH="85" HEIGHT="30" BORDER=0 ALT="">
</CENTER></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -