﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-太阳雨-随笔分类-数据库</title><link>http://www.blogjava.net/sy1214520/category/32331.html</link><description>痛并快乐着</description><language>zh-cn</language><lastBuildDate>Wed, 14 Apr 2010 17:49:34 GMT</lastBuildDate><pubDate>Wed, 14 Apr 2010 17:49:34 GMT</pubDate><ttl>60</ttl><item><title>常用sql,建立临时表语法,会话级临时表,查看锁表,解除锁表,case,连接的会话数 ，查询耗资源的</title><link>http://www.blogjava.net/sy1214520/archive/2010/04/14/318287.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Wed, 14 Apr 2010 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2010/04/14/318287.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/318287.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2010/04/14/318287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/318287.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/318287.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sy1214520/archive/2010/04/14/318287.html'>阅读全文</a><img src ="http://www.blogjava.net/sy1214520/aggbug/318287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2010-04-14 17:55 <a href="http://www.blogjava.net/sy1214520/archive/2010/04/14/318287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle的正则表达式</title><link>http://www.blogjava.net/sy1214520/archive/2010/01/07/308540.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Thu, 07 Jan 2010 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2010/01/07/308540.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/308540.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2010/01/07/308540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/308540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/308540.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sy1214520/archive/2010/01/07/308540.html'>阅读全文</a><img src ="http://www.blogjava.net/sy1214520/aggbug/308540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2010-01-07 13:42 <a href="http://www.blogjava.net/sy1214520/archive/2010/01/07/308540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>据说是阿里巴巴公司DBA笔试题(转，鞭策一下自己)</title><link>http://www.blogjava.net/sy1214520/archive/2009/03/04/257858.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Wed, 04 Mar 2009 11:16:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2009/03/04/257858.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/257858.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2009/03/04/257858.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/257858.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/257858.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sy1214520/archive/2009/03/04/257858.html'>阅读全文</a><img src ="http://www.blogjava.net/sy1214520/aggbug/257858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2009-03-04 19:16 <a href="http://www.blogjava.net/sy1214520/archive/2009/03/04/257858.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 中查询表字段信息的方法</title><link>http://www.blogjava.net/sy1214520/archive/2009/02/20/255869.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Fri, 20 Feb 2009 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2009/02/20/255869.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/255869.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2009/02/20/255869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/255869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/255869.html</trackback:ping><description><![CDATA[马上要做信息知识库了，可能会用到这个东东，提交写好，到时候方便使用（最近实在是太忙了!-_- ）在ORACLE数据字典视图user_tab_columns 中提供了表的字段详细信息
<p>用如下语句即可得到基本的信息</p>
<p>select column_id, column_name, data_type, data_length, data_precision, data_scale,nullable,data_default from user_tab_columns where table_name = 'Tablename' order by column_id</p>
<br />
另外可能有一个需求一直没有想到好的解决方案，希望哪位高手能够提供建议：<br />
我们要根据传来的数据库连接的基本信息，去连接到数据源，然后根据表名，查询出来这张表的结构（上面已经做了，不难），然后在我们的信息库中根据该表结构创建表。并复制数据。到这位置，都没有什么难的，只是方便大家理解。<br />
后面的事情是这样，在查询出来的数据库信息中，需要显示成一个列表，但是其中有部分不是业务信息，而是另一张表的外键，这个时侯，我们要再根据这个外键来查询出来相对应的表的信息。有点像报表。<br />
疑惑的地方在于如果是一对一的，很简单，把这个字段信息做成一个url，先不考虑性能问题，方案是可行的。但是如果是一对多的时候，就会比较麻烦。
<img src ="http://www.blogjava.net/sy1214520/aggbug/255869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2009-02-20 17:28 <a href="http://www.blogjava.net/sy1214520/archive/2009/02/20/255869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle常用命令（备忘）</title><link>http://www.blogjava.net/sy1214520/archive/2008/12/22/247729.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Mon, 22 Dec 2008 03:56:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/12/22/247729.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/247729.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/12/22/247729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/247729.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/247729.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sy1214520/archive/2008/12/22/247729.html'>阅读全文</a><img src ="http://www.blogjava.net/sy1214520/aggbug/247729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-12-22 11:56 <a href="http://www.blogjava.net/sy1214520/archive/2008/12/22/247729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据库的常用函数列表快速查收藏</title><link>http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Mon, 10 Nov 2008 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/239763.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/239763.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/239763.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<table cellspacing="1" cellpadding="5" width="670" align="center" bgcolor="#4d9da6" border="0">
    <tbody>
        <tr>
            <td valign="top" bgcolor="#efefef" height="200">
            <p style="text-indent: 2em">函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数，这些函数都可被称为SQL或PL/SQL语句，函数主要分为两大类： </p>
            <p style="text-indent: 2em">单行函数、组函数 </p>
            <p style="text-indent: 2em">本文将讨论如何利用单行函数以及使用规则。 </p>
            <p style="text-indent: 2em"><strong>SQL中的单行函数</strong> </p>
            <p style="text-indent: 2em">SQL和PL/SQL中自带很多类型的函数，有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据，因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY等子句中，例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere
                        UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename)</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">单行函数也可以在其他语句中使用，如update的SET子句，INSERT的VALUES子句，DELET的WHERE子句,认证考试特别注意在SELECT语句中使用这些函数，所以我们的注意力也集中在SELECT语句中。 </p>
            <p style="text-indent: 2em"><strong>NULL和单行函数</strong> </p>
            <p style="text-indent: 2em">在如何理解NULL上开始是很困难的，就算是一个很有经验的人依然对此感到困惑。NULL值表示一个未知数据或者一个空值，算术操作符的任何一个操作数为NULL值，结果均为提个NULL值,这个规则也适合很多函数，只有CONCAT,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL值。在这些中NVL函数时最重要的，因为他能直接处理NULL值，NVL有两个参数：NVL(x1,x2),x1和x2都式表达式，当x1为null时返回X2,否则返回x1。 </p>
            <p style="text-indent: 2em">下面我们看看emp数据表它包含了薪水、奖金两项，需要计算总的补偿 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>column name emp_id salary bonuskey type pk nulls/unique nn,
                        u nnfk table datatype number number numberlength 11.2 11.2</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">不是简单的将薪水和奖金加起来就可以了，如果某一行是null值那么结果就将是null，比如下面的例子： </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>update empset salary=(salary+bonus)*1.1</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">这个语句中，雇员的工资和奖金都将更新为一个新的值，但是如果没有奖金，即 salary + null,那么就会得出错误的结论，这个时候就要使用nvl函数来排除null值的影响。 </p>
            <p style="text-indent: 2em">所以正确的语句是： </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>update empset salary=(salary+nvl(bonus,0)*1.1</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em"><strong>单行字符串函数</strong> </p>
            <p style="text-indent: 2em">单行字符串函数用于操作字符串数据，他们大多数有一个或多个参数，其中绝大多数返回字符串 </p>
            <p style="text-indent: 2em">ASCII() </p>
            <p style="text-indent: 2em">c1是一字符串，返回c1第一个字母的ASCII码，他的逆函数是CHR() </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">CHR(＜i＞)[NCHAR_CS] </p>
            <p style="text-indent: 2em">i是一个数字，函数返回十进制表示的字符 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select CHR(65),CHR(122),CHR(223) FROM empCHR65 CHR122 CHR223A z B</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">CONCAT(,) </p>
            <p style="text-indent: 2em">c1,c2均为字符串，函数将c2连接到c1的后面，如果c1为null,将返回c2.如果c2为null,则返回c1，如果c1、c2都为null，则返回null。他和操作符||返回的结果相同 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select concat('slobo ','Svoboda') username from dualusernameslobo Syoboda</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">INITCAP() </p>
            <p style="text-indent: 2em">c1为一字符串。函数将每个单词的第一个字母大写其它字母小写返回。单词由空格，控制字符，标点符号限制。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select INITCAP('veni,vedi,vici') Ceasar from dualCeasarVeni,Vedi,Vici</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">INSTR(,[,＜i＞[,]]) </p>
            <p style="text-indent: 2em">c1,c2均为字符串，i,j为整数。函数返回c2在c1中第j次出现的位置，搜索从c1的第i个字符开始。当没有发现需要的字符时返回0,如果i为负数，那么搜索将从右到左进行，但是位置的计算还是从左到右，i和j的缺省值为1. </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select INSTR('Mississippi','i',3,3)
                        from dualINSTR('MISSISSIPPI','I',3,3)11
                        select INSTR('Mississippi','i',-2,3)
                        from dualINSTR('MISSISSIPPI','I',3,3)2</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">INSTRB(,[,i[,j]) </p>
            <p style="text-indent: 2em">与INSTR（）函数一样，只是他返回的是字节，对于单字节INSTRB()等于INSTR() </p>
            <p style="text-indent: 2em">LENGTH() </p>
            <p style="text-indent: 2em">c1为字符串，返回c1的长度，如果c1为null，那么将返回null值。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select LENGTH('Ipso Facto') ergo from dualergo10</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">LENGTHb() </p>
            <p style="text-indent: 2em">与LENGTH()一样，返回字节。 </p>
            <p style="text-indent: 2em">lower() </p>
            <p style="text-indent: 2em">返回c的小写字符，经常出现在where子串中 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select LOWER(colorname) from itemdetail WHERE LOWER(colorname) LIKE '%white%'COLORNAMEWinterwhite</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">LPAD(,＜i＞[,]) </p>
            <p style="text-indent: 2em">c1,c2均为字符串，i为整数。在c1的左侧用c2字符串补足致长度i,可多次重复，如果i小于c1的长度，那么只返回i那么长的c1字符，其他的将被截去。c2的缺省值为单空格，参见RPAD。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select LPAD(answer,7,'') padded,answer unpadded from question;
                        PADDED UNPADDED Yes YesNO NOMaybe maybe</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">LTRIM(,) </p>
            <p style="text-indent: 2em">把c1中最左边的字符去掉，使其第一个字符不在c2中，如果没有c2，那么c1就不会改变。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select LTRIM('Mississippi','Mis') from dualLTRppi</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">RPAD(,＜i＞[,]) </p>
            <p style="text-indent: 2em">在c1的右侧用c2字符串补足致长度i,可多次重复，如果i小于c1的长度，那么只返回i那么长的c1字符，其他的将被截去。c2的缺省值为单空格,其他与LPAD相似 </p>
            <p style="text-indent: 2em">RTRIM(,) </p>
            <p style="text-indent: 2em">把c1中最右边的字符去掉，使其第后一个字符不在c2中，如果没有c2，那么c1就不会改变。 </p>
            <p style="text-indent: 2em">REPLACE(,[,]) </p>
            <p style="text-indent: 2em">c1,c2,c3都是字符串，函数用c3代替出现在c1中的c2后返回。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select REPLACE('uptown','up','down') from dualREPLACEdowntown</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">STBSTR(,＜i＞[,]) </p>
            <p style="text-indent: 2em">c1为一字符串，i,j为整数，从c1的第i位开始返回长度为j的子字符串，如果j为空，则直到串的尾部。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select SUBSTR('Message',1,4) from dualSUBSMess</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">SUBSTRB(,＜i＞[,]) </p>
            <p style="text-indent: 2em">与SUBSTR大致相同，只是I,J是以字节计算。 </p>
            <p style="text-indent: 2em">SOUNDEX() </p>
            <p style="text-indent: 2em">返回与c1发音相似的词 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select SOUNDEX('dawes') Dawes SOUNDEX('daws') Daws,
                        SOUNDEX('dawson') from dualDawes Daws DawsonD200 D200 D250</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">TRANSLATE(,,) </p>
            <p style="text-indent: 2em">将c1中与c2相同的字符以c3代替 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select TRANSLATE('fumble','uf','ar') test from dualTEXTramble</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">TRIM([[]] from c3) </p>
            <p style="text-indent: 2em">将c3串中的第一个，最后一个，或者都删除。 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select TRIM(' space padded ') trim from dual TRIMspace padded</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em">UPPER() </p>
            <p style="text-indent: 2em">返回c1的大写，常出现where子串中 </p>
            <p style="text-indent: 2em">&nbsp;</p>
            <center><ccid_nobr></ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code></ccid_code>select name from dual where UPPER(name) LIKE 'KI%'NAMEKING</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </center>
            <p style="text-indent: 2em"><strong>单行数字函数</strong> </p>
            <p style="text-indent: 2em">单行数字函数操作数字数据，执行数学和算术运算。所有函数都有数字参数并返回数字值。所有三角函数的操作数和值都是弧度而不是角度，oracle没有提供内建的弧度和角度的转换函数。 </p>
            </td>
        </tr>
    </tbody>
</table>
&nbsp;
<p style="text-indent: 2em">ABS() </p>
<p style="text-indent: 2em">返回n的绝对值 </p>
<p style="text-indent: 2em">ACOS() </p>
<p style="text-indent: 2em">反余玄函数，返回-1到1之间的数。n表示弧度 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>select ACOS(-1) pi,ACOS(1) ZERO FROM dualPI ZERO3.14159265 0</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">ASIN() </p>
<p style="text-indent: 2em">反正玄函数，返回-1到1，n表示弧度 </p>
<p style="text-indent: 2em">ATAN() </p>
<p style="text-indent: 2em">反正切函数，返回n的反正切值，n表示弧度。 </p>
<p style="text-indent: 2em">CEIL() </p>
<p style="text-indent: 2em">返回大于或等于n的最小整数。 </p>
<p style="text-indent: 2em">COS() </p>
<p style="text-indent: 2em">返回n的余玄值，n为弧度 </p>
<p style="text-indent: 2em">COSH() </p>
<p style="text-indent: 2em">返回n的双曲余玄值，n 为数字。 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>select COSH(&lt;1.4&gt;) FROM dualCOSH(1.4)2.15089847</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">EXP() </p>
<p style="text-indent: 2em">返回e的n次幂，e=2.71828183. </p>
<p style="text-indent: 2em">FLOOR() </p>
<p style="text-indent: 2em">返回小于等于N的最大整数。 </p>
<p style="text-indent: 2em">LN() </p>
<p style="text-indent: 2em">返回N的自然对数，N必须大于0 </p>
<p style="text-indent: 2em">LOG(,) </p>
<p style="text-indent: 2em">返回以n1为底n2的对数 </p>
<p style="text-indent: 2em">MOD() </p>
<p style="text-indent: 2em">返回n1除以n2的余数， </p>
<p style="text-indent: 2em">POWER(,) </p>
<p style="text-indent: 2em">返回n1的n2次方 </p>
<p style="text-indent: 2em">ROUND(,) </p>
<p style="text-indent: 2em">返回舍入小数点右边n2位的n1的值，n2的缺省值为0，这回将小数点最接近的整数，如果n2为负数就舍入到小数点左边相应的位上，n2必须是整数。 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>select ROUND(12345,-2),ROUND(12345.54321,2)
            FROM dualROUND(12345,-2) ROUND(12345.54321,2)12300 12345.54</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">SIGN() </p>
<p style="text-indent: 2em">如果n为负数，返回-1,如果n为正数，返回1，如果n=0返回0. </p>
<p style="text-indent: 2em">SIN（) </p>
<p style="text-indent: 2em">返回n的正玄值,n为弧度。 </p>
<p style="text-indent: 2em">SINH() </p>
<p style="text-indent: 2em">返回n的双曲正玄值,n为弧度。 </p>
<p style="text-indent: 2em">SQRT() </p>
<p style="text-indent: 2em">返回n的平方根,n为弧度 </p>
<p style="text-indent: 2em">TAN（) </p>
<p style="text-indent: 2em">返回n的正切值,n为弧度 </p>
<p style="text-indent: 2em">TANH() </p>
<p style="text-indent: 2em">返回n的双曲正切值,n为弧度 </p>
<p style="text-indent: 2em">TRUNC(,) </p>
<p style="text-indent: 2em">返回截尾到n2位小数的n1的值，n2缺省设置为0，当n2为缺省设置时会将n1截尾为整数，如果n2为负值，就截尾在小数点左边相应的位上。</p>
<p style="text-indent: 2em"><strong>单行日期函数 </strong></p>
<p style="text-indent: 2em">单行日期函数操作DATA数据类型，绝大多数都有DATA数据类型的参数，绝大多数返回的也是DATA数据类型的值。 </p>
<p style="text-indent: 2em">ADD_MONTHS(,＜i＞) </p>
<p style="text-indent: 2em">返回日期d加上i个月后的结果。i可以使任意整数。如果i是一个小数，那么数据库将隐式的他转换成整数，将会截去小数点后面的部分。 </p>
<p style="text-indent: 2em">LAST_DAY() </p>
<p style="text-indent: 2em">函数返回包含日期d的月份的最后一天 </p>
<p style="text-indent: 2em">MONTHS_BETWEEN(,) </p>
<p style="text-indent: 2em">返回d1和d2之间月的数目,如果d1和d2的日的日期都相同，或者都使该月的最后一天，那么将返回一个整数，否则会返回的结果将包含一个分数。 </p>
<p style="text-indent: 2em">NEW_TIME(,,) </p>
<p style="text-indent: 2em">d1是一个日期数据类型，当时区tz1中的日期和时间是d时，返回时区tz2中的日期和时间。tz1和tz2时字符串。 </p>
<p style="text-indent: 2em">NEXT_DAY(,) </p>
<p style="text-indent: 2em">返回日期d后由dow给出的条件的第一天，dow使用当前会话中给出的语言指定了一周中的某一天，返回的时间分量与d的时间分量相同。 </p>
<p style="text-indent: 2em">select NEXT_DAY('01-Jan-2000' </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>,'Monday') "1st Monday",
            NEXT_DAY('01-Nov-2004','Tuesday')+7 "2nd Tuesday")
            from dual;1st Monday 2nd Tuesday03-Jan-2000 09-Nov-2004</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">ROUND([,]) </p>
<p style="text-indent: 2em">将日期d按照fmt指定的格式舍入，fmt为字符串。 </p>
<p style="text-indent: 2em">SYADATE </p>
<p style="text-indent: 2em">函数没有参数，返回当前日期和时间。 </p>
<p style="text-indent: 2em">TRUNC([,]) </p>
<p style="text-indent: 2em">返回由fmt指定的单位的日期d. </p>
<p style="text-indent: 2em"><strong>单行转换函数</strong> </p>
<p style="text-indent: 2em">单行转换函数用于操作多数据类型，在数据类型之间进行转换。 </p>
<p style="text-indent: 2em">CHARTORWID() </p>
<p style="text-indent: 2em">c 使一个字符串，函数将c转换为RWID数据类型。 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>SELECT test_id from test_case where rowid=CHARTORWID('AAAA0SAACAAAALiAAA')</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">CONVERT(,[,]) </p>
<p style="text-indent: 2em">c尾字符串，dset、sset是两个字符集，函数将字符串c由sset字符集转换为dset字符集，sset的缺省设置为数据库的字符集。 </p>
<p style="text-indent: 2em">HEXTORAW() </p>
<p style="text-indent: 2em">x为16进制的字符串，函数将16进制的x转换为RAW数据类型。 </p>
<p style="text-indent: 2em">RAWTOHEX() </p>
<p style="text-indent: 2em">x是RAW数据类型字符串，函数将RAW数据类转换为16进制的数据类型。 </p>
<p style="text-indent: 2em">ROWIDTOCHAR() </p>
<p style="text-indent: 2em">函数将ROWID数据类型转换为CHAR数据类型。 </p>
<p style="text-indent: 2em">TO_CHAR([[,) </p>
<p style="text-indent: 2em">x是一个data或number数据类型，函数将x转换成fmt指定格式的char数据类型，如果x为日期nlsparm=NLS_DATE_LANGUAGE 控制返回的月份和日份所使用的语言。如果x为数字nlsparm=NLS_NUMERIC_CHARACTERS 用来指定小数位和千分位的分隔符，以及货币符号。 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>NLS_NUMERIC_CHARACTERS ="dg", NLS_CURRENCY="string"</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">TO_DATE([,[,） </p>
<p style="text-indent: 2em">c表示字符串，fmt表示一种特殊格式的字符串。返回按照fmt格式显示的c,nlsparm表示使用的语言。函数将字符串c转换成date数据类型。 </p>
<p style="text-indent: 2em">TO_MULTI_BYTE() </p>
<p style="text-indent: 2em">c表示一个字符串，函数将c的担子截字符转换成多字节字符。 </p>
<p style="text-indent: 2em">TO_NUMBER([,[,) </p>
<p style="text-indent: 2em">c表示字符串，fmt表示一个特殊格式的字符串，函数返回值按照fmt指定的格式显示。nlsparm表示语言，函数将返回c代表的数字。 </p>
<p style="text-indent: 2em">TO_SINGLE_BYTE() </p>
<p style="text-indent: 2em">将字符串c中得多字节字符转化成等价的单字节字符。该函数仅当数据库字符集同时包含单字节和多字节字符时才使用</p>
<p style="text-indent: 2em"><strong>其它单行函数</strong> </p>
<p style="text-indent: 2em">BFILENAME( ,) </p>
<p style="text-indent: 2em">dir是一个directory类型的对象，file为一文件名。函数返回一个空的BFILE位置值指示符，函数用于初始化BFILE变量或者是BFILE列。 </p>
<p style="text-indent: 2em">DECODE(,,[,,,[]) </p>
<p style="text-indent: 2em">x是一个表达式，m1是一个匹配表达式，x与m1比较，如果m1等于x，那么返回r1,否则,x与m2比较，依次类推m3,m4,m5....直到有返回结果。 </p>
<p style="text-indent: 2em">DUMP(,[,[,[,]]]) </p>
<p style="text-indent: 2em">x是一个表达式或字符，fmt表示8进制、10进制、16进制、或则单字符。函数返回包含了有关x的内部表示信息的VARCHAR2类型的值。如果指定了n1,n2那么从n1开始的长度为n2的字节将被返回。 </p>
<p style="text-indent: 2em">EMPTY_BLOB() </p>
<p style="text-indent: 2em">该函数没有参数，函数返回 一个空的BLOB位置指示符。函数用于初始化一个BLOB变量或BLOB列。 </p>
<p style="text-indent: 2em">EMPTY_CLOB() </p>
<p style="text-indent: 2em">该函数没有参数，函数返回 一个空的CLOB位置指示符。函数用于初始化一个CLOB变量或CLOB列。 </p>
<p style="text-indent: 2em">GREATEST() </p>
<p style="text-indent: 2em">exp_list是一列表达式，返回其中最大的表达式，每个表达式都被隐含的转换第一个表达式的数据类型，如果第一个表达式是字符串数据类型中的任何一个，那么返回的结果是varchar2数据类型，同时使用的比较是非填充空格类型的比较。 </p>
<p style="text-indent: 2em">LEAST() </p>
<p style="text-indent: 2em">exp_list是一列表达式，返回其中最小的表达式，每个表达式都被隐含的转换第一个表达式的数据类型，如果第一个表达式是字符串数据类型中的任何一个，将返回的结果是varchar2数据类型，同时使用的比较是非填充空格类型的比较。 </p>
<p style="text-indent: 2em">UID </p>
<p style="text-indent: 2em">该函数没有参数，返回唯一标示当前数据库用户的整数。 </p>
<p style="text-indent: 2em">USER </p>
<p style="text-indent: 2em">返回当前用户的用户名 </p>
<p style="text-indent: 2em">USERENV() </p>
<p style="text-indent: 2em">基于opt返回包含当前会话信息。opt的可选值为： </p>
<p style="text-indent: 2em">ISDBA　 　　会话中SYSDBA脚色响应，返回TRUE </p>
<p style="text-indent: 2em">SESSIONID 　返回审计会话标示符 </p>
<p style="text-indent: 2em">ENTRYID 　　返回可用的审计项标示符 </p>
<p style="text-indent: 2em">INSTANCE　　在会话连接后，返回实例标示符。该值只用于运行Parallel 服务器并且有 多个实例的情况下使用。 </p>
<p style="text-indent: 2em">LANGUAGE　　返回语言、地域、数据库设置的字符集。 </p>
<p style="text-indent: 2em">LANG　　　　返回语言名称的ISO缩写。 </p>
<p style="text-indent: 2em">TERMINAL　　为当前会话使用的终端或计算机返回操作系统的标示符。 </p>
<p style="text-indent: 2em">VSIZE() </p>
<p style="text-indent: 2em">x是一个表达式。返回x内部表示的字节数。 </p>
<p style="text-indent: 2em"><strong>SQL中的组函数</strong> </p>
<p style="text-indent: 2em">组函数也叫集合函数，返回基于多个行的单一结果，行的准确数量无法确定，除非查询被执行并且所有的结果都被包含在内。与单行函数不同的是，在解析时所有的行都是已知的。由于这种差别使组函数与单行函数有在要求和行为上有微小的差异.</p>
<p style="text-indent: 2em"><strong>组（多行）函数</strong> </p>
<p style="text-indent: 2em">与单行函数相比，oracle提供了丰富的基于组的，多行的函数。这些函数可以在select或select的having子句中使用，当用于select子串时常常都和GROUP BY一起使用。 </p>
<p style="text-indent: 2em">AVG([{DISYINCT|ALL}]) </p>
<p style="text-indent: 2em">返回数值的平均值。缺省设置为ALL. </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal)
            FROM scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)
            1877.94118 1877.94118 1916.071413</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">COUNT({*|DISTINCT|ALL} ) </p>
<p style="text-indent: 2em">返回查询中行的数目，缺省设置是ALL,*表示返回所有的行。 </p>
<p style="text-indent: 2em">MAX([{DISTINCT|ALL}]) </p>
<p style="text-indent: 2em">返回选择列表项目的最大值，如果x是字符串数据类型，他返回一个VARCHAR2数据类型，如果X是一个DATA数据类型，返回一个日期，如果X是numeric数据类型，返回一个数字。注意distinct和all不起作用，应为最大值与这两种设置是相同的。 </p>
<p style="text-indent: 2em">MIN([{DISTINCT|ALL}]) </p>
<p style="text-indent: 2em">返回选择列表项目的最小值。 </p>
<p style="text-indent: 2em">STDDEV([{DISTINCT|ALL}]) </p>
<p style="text-indent: 2em">返回选者的列表项目的标准差，所谓标准差是方差的平方根。 </p>
<p style="text-indent: 2em">SUM([{DISTINCT|ALL}]) </p>
<p style="text-indent: 2em">返回选择列表项目的数值的总和。 </p>
<p style="text-indent: 2em">VARIANCE([{DISTINCT|ALL}]) </p>
<p style="text-indent: 2em">返回选择列表项目的统计方差。 </p>
<p style="text-indent: 2em"><strong>用GROUP BY给数据分组</strong> </p>
<p style="text-indent: 2em">正如题目暗示的那样组函数就是操作那些已经分好组的数据，我们告诉数据库用GROUP BY怎样给数据分组或者分类，当我们在SELECT语句的SELECT子句中使用组函数时，我们必须把为分组或非常数列放置在GROUP BY子句中，如果没有用group by进行专门处理，那么缺省的分类是将整个结果设为一类。 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>select stat,counter(*) zip_count from zip_codes GROUP BY state;
            ST ZIP_COUNT-- ---------AK 360AL 1212AR 1309AZ 768CA 3982</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">在这个例子中，我们用state字段分类；如果我们要将结果按照zip_codes排序,可以用ORDER BY语句，ORDER BY子句可以使用列或组函数。 </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>select stat,counter(*) zip_count from zip_codes GROUP
            BY state ORDER BY COUNT(*) DESC;ST COUNT(*)-- --------
            NY 4312PA 4297TX 4123CA 3982</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em"><strong>用HAVING子句限制分组数据</strong> </p>
<p style="text-indent: 2em">现在你已经知道了在查询的SELECT语句和ORDER BY子句中使用主函数，组函数只能用于两个子串中，组函数不能用于WHERE子串中，例如下面的查询是错误的： </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>错误SELECT sales_clerk,SUN(sale_amount)
            FROM gross_sales WHERE sales_dept='OUTSIDE'
            AND SUM(sale_amount)&gt;10000 GROUP BY sales_clerk</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<p style="text-indent: 2em">这个语句中数据库不知道SUM()是什么，当我们需要指示数据库对行分组，然后限制分组后的行的输出时，正确的方法是使用HAVING语句： </p>
<p style="text-indent: 2em">&nbsp;</p>
<center><ccid_nobr></ccid_nobr>
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="#000000" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre><ccid_code></ccid_code>SELECT sales_clerk,SUN(sale_amount)
            FROM gross_sales WHERE sales_dept='OUTSIDE'
            GROUP BY sales_clerkHAVING SUM(sale_amount)&gt;10000;</pre>
            </td>
        </tr>
    </tbody>
</table>
</center>
<img src ="http://www.blogjava.net/sy1214520/aggbug/239763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2008-11-10 23:42 <a href="http://www.blogjava.net/sy1214520/archive/2008/11/10/239763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>