﻿<?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-断点-随笔分类-SQL</title><link>http://www.blogjava.net/tfzhu/category/43572.html</link><description>每天进步一点点！</description><language>zh-cn</language><lastBuildDate>Sun, 25 Jul 2010 06:09:21 GMT</lastBuildDate><pubDate>Sun, 25 Jul 2010 06:09:21 GMT</pubDate><ttl>60</ttl><item><title>复杂SQL学习</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/24/327019.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sat, 24 Jul 2010 08:42:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/24/327019.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327019.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/24/327019.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327019.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327019.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt">1、</span><span style="font-size: 12pt">具体业务中用到的sql，</span><span style="font-size: 12pt">这个是查找最近标志为1，且有多条记录的数据。 (这个sql查找错误比较有用。)<br />
<span style="color: #0000ff">select a.c_ply_no ,count(1) from web_ply_base a<br />
where&nbsp; a.c_latest_mrk='1'<br />
group by&nbsp; a.c_ply_no<br />
having count(1)&gt;1</span></span>
<p><span style="font-size: 12pt">&nbsp;</span></p>
<p><span style="font-size: 12pt">背景count(*)&nbsp;&nbsp; count(1)&nbsp;&nbsp; 两者比较，主要还是要count(1)所相对应的数据字段： <br />
&nbsp; </span><span style="font-size: 12pt">如果你的数据表没有主键，那么count(1)比count(*)快&nbsp;&nbsp; <br />
&nbsp; 如果有主键的话，那主键（联合主键）作为count的条件也比count(*)要快&nbsp;&nbsp; <br />
&nbsp; 如果你的表只有一个字段的话那count(*)就是最快的啦<br />
&nbsp; 如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。&nbsp;&nbsp; <br />
&nbsp; 因为count(*),自动会优化指定到那一个字段。所以没必要去count(?)，用count(*),sql会帮你完成</span><span style="font-size: 12pt">优化的.</span><br />
<span style="font-size: 12pt">其他语句：select * from 表名 where 条件 order by 字段名 asc\desc&nbsp;&nbsp;&nbsp;&nbsp; // asc 升序&nbsp;&nbsp;&nbsp; desc&nbsp; </span><span style="font-size: 12pt">降序<br />
<br />
2、C_Nme_En匹配多个 like 查询。<br />
select distinct C_Spec_No<br />
&nbsp; from WEB_Prd_Fix_Spec<br />
&nbsp;WHERE C_Spec_No in (SELECT C_Spec_No<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM web_Prd_Prod_Spec_Rel<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE C_Prod_No = '0326'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and C_Spec_No like '89%')<br />
&nbsp;&nbsp; <span style="color: #0000ff">and (C_Nme_En like '%000000%' or C_Nme_En like '%030006%' or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C_Nme_En like '%030061%')</span><br />
</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327019.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-24 16:42 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/24/327019.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL对单个字段不同内容的统计 </title><link>http://www.blogjava.net/tfzhu/archive/2010/01/14/309576.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Thu, 14 Jan 2010 14:11:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/01/14/309576.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/309576.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/01/14/309576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/309576.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/309576.html</trackback:ping><description><![CDATA[<p>SELECT&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp; FROM (SELECT&nbsp;&nbsp; COUNT (c_nme_en) as cus , c_nme_en <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM web_prod<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE c_prod_no = '0325' AND c_tab_no != '0040'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GROUP BY c_nme_en)<br />
&nbsp;&nbsp; WHERE cus &gt; 1<br />
order by c_nme_en</p>
<p>这个就是对c_nme_en列的不同内容进行统计。</p>
<p>&nbsp;</p>
<p>可以参考：http://www.w3school.com.cn/sql/sql_groupby.asp</p>
<br />
posted @ 2009-06-03 11:11 断点 阅读(56) | 评论 (0) 
<img src ="http://www.blogjava.net/tfzhu/aggbug/309576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-01-14 22:11 <a href="http://www.blogjava.net/tfzhu/archive/2010/01/14/309576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PL/SQL编程 </title><link>http://www.blogjava.net/tfzhu/archive/2010/01/14/309574.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Thu, 14 Jan 2010 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/01/14/309574.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/309574.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/01/14/309574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/309574.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/309574.html</trackback:ping><description><![CDATA[<p style="color: #3366ff">数据类型：</p>
<p><font face="Verdana">数字类型：<br />
Number用来表示可变长的数值列，语法为Number(p, s)，p是指所有有效数字的位数，s是指小数点以后的位数；p和s的取值分别是p=1 to 38，s=-84 to 127；<br />
有效数位：从左边第一个不为0的数算起，小数点和负号不计入有效位数。</font></p>
<p><font face="Verdana">p&gt;0，对s分3种情况： <br />
1. s&gt;0 <br />
精确到小数点右边s位，并四舍五入。然后检验有效数位是否&lt;=p；如果s&gt;p，小数点右边至少有s-p个0填充。 <br />
2. s&lt;0 <br />
精确到小数点左边s位，并四舍五入。然后检验有效数位是否&lt;=p+|s| <br />
3.s是0或者未指定，四舍五入到最近整数。<br />
<span style="color: red">注意：当p小于s时候，表示数字是绝对值小于1的数字，且从小数点右边开始的前s-p 位必须是0，保留s位小数。</span></font></p>
<p>比如 <br />
Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Datatype&nbsp;&nbsp;&nbsp;&nbsp; Stored Value <br />
<font face="Verdana">123.2564&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&nbsp;&nbsp;&nbsp; 123.2564 <br />
1234.9876&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(6)&nbsp;&nbsp;&nbsp; 1235 <br />
1234.9876&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(6,2)&nbsp;&nbsp;&nbsp; 1234.99 <br />
12345.12345&nbsp;NUMBER(6,2)&nbsp;&nbsp;&nbsp; Error <br />
12345.345&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(5,-2)&nbsp;&nbsp;&nbsp; 12300 <br />
1234567&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(5,-2)&nbsp;&nbsp;&nbsp; 1234600 <br />
12345678&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(5,-2)&nbsp;&nbsp;&nbsp; Error <br />
12345.58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NUMBER(*, 1)&nbsp;&nbsp;&nbsp; 12345.6 <br />
0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NUMBER(4,5)&nbsp;&nbsp;&nbsp; Error <br />
0.01234567&nbsp;&nbsp; NUMBER(4,5)&nbsp;&nbsp;&nbsp; 0.01235 <br />
0.09999&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(4,5)&nbsp;&nbsp;&nbsp; 0.09999 <br />
0.099996&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER(4,5)&nbsp;&nbsp;&nbsp; &lt;&gt;&nbsp;</font>&nbsp;</p>
<p style="color: #000000"><span style="color: #008000"><span style="color: #008000"><font face="Verdana"><font face="Verdana"><span style="color: #000000"><font face="Verdana"><font style="color: #000000" face="Verdana">用法如下：<br />
</font></font></span>create table t_n(id number(5,2)); </font><br />
insert into t_n values(123.455); <br />
insert into t_n values(1.234); <br />
insert into t_n values(.001);</font><br />
</span></span><font face="Verdana">select * from t_n 结果为：</font><br />
<table border="1">
    <tbody>
        <tr>
            <th>ID</th>
        </tr>
        <tr>
            <td>123.46</td>
        </tr>
        <tr>
            <td>1.23</td>
        </tr>
        <tr>
            <td>0.00</td>
        </tr>
    </tbody>
</table>
</p>
<p style="color: #000000">Number类型存储实数，PLS_Integer和BINARY_Integer只能存储整数。</p>
<p style="color: #000000">字符类型：</p>
<p style="color: #000000">Char表示定长的字符串，语法Char（L），L是可选的。如果没有指定L值，默认为1；最大长度为32767。</p>
<p style="color: #000000">VarChar2用来存储可变的字符串，语法VarChar2（L），L是必须的。最大长度为32767。</p>
<p style="color: #000000">布尔类型：</p>
<p style="color: #000000">Boolean类型的合法赋值为True、False和Null。</p>
<p style="color: #000000"><span style="color: #3366ff">类型转换：</span></p>
<p style="color: #000000"><span style="color: #000000">To_Char：可以将Number和Date类型转换为Varchar2类型；</span></p>
<p style="color: #000000"><span style="color: #000000">To_Date：将Char类型转换Date类型；</span></p>
<p style="color: #000000"><span style="color: #000000">To_Number：将Char类型转换Number类型；</span></p>
<p style="color: #3366ff">变量和常量：</p>
<p style="color: #3366ff"><span style="color: red">变量名称：1.必须以字母开头；2.其后可以跟一个或多个字母、数字（0~9)、特殊字符$、#或_ ;</span></p>
<p style="color: #3366ff"><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.变量长度不超过30个字符；4.变量名中不能有空格。</span></p>
<p style="color: #000000">1.变量的声明：</p>
<p style="color: #339966"><font style="color: #008000" face="Verdana">DECLARE<br />
v_StudentName VARCHAR2(20),<br />
v_CurrentDate DATE;<br />
v_NumberCredits NUMBER(3);</font></p>
<p style="color: #000000">2.自定义的数据类型：</p>
<p style="color: #000000"><span style="color: #008000"><span style="color: #008000">DECLARE<br />
TYPE <span style="color: #ff0000">t_StudentRecord </span>IS RECORD (FirstName Varchar2(10),LastName Varchar2(10),</span></span></p>
<p style="color: #000000"><span style="color: #008000"><span style="color: #008000">CurrentCredits NUMBER(3));<br />
v_Student&nbsp; t_StudentRecord;</span></span></p>
<p style="color: #000000"><span style="color: #008000"><span style="color: #008000"><span style="color: #000000"><span style="color: #000000">3.变量属性：</span></span></span></span><span style="color: #008000"><span style="color: #008000"><span style="color: #000000"><span style="color: #000000"></p>
<p><font face="Verdana">下面介绍常见的几种复合数据类型变量的定义。<br />
&nbsp;&nbsp;&nbsp; （1）使用%type定义变量<br />
&nbsp;&nbsp;&nbsp; 为了让PL/SQL中变量的类型和数据表中的字段的数据类型一致，Oracle 9i提供了%type定义方法。这</font><font face="Verdana">样当数据表的字段类型修改后，PL/SQL程序中相应变量的类型也自动修改。如下：<br />
<span style="color: #339966"><font style="color: #339966" face="Verdana"><span style="color: #008000"><font face="Verdana"><font style="color: #339966" face="Verdana">declare<br />
&nbsp;&nbsp; mytable emp.empno%type;<br />
begin<br />
&nbsp;&nbsp; select a.empno into mytable<br />
&nbsp;&nbsp; from emp a <br />
&nbsp;&nbsp; where a.ename='SCOTT';<br />
&nbsp;&nbsp; dbms_output.put_line(mytable);<br />
end;</font></font><font face="Verdana">&nbsp;&nbsp;&nbsp;</font></span></font></span></font><font face="Verdana"> </font></p>
<p><font face="Verdana">&nbsp;&nbsp; （2）使用%rowtype定义变量<br />
&nbsp;&nbsp;&nbsp; </font><span style="color: #ff0000"><span style="color: #ff0000">使用%type可以使变量获得字段的数据类型，使用%rowtype可以使变量获得整个记录的数据类型。</span></span></p>
<p><span style="color: #ff0000"><span style="color: #ff0000">&nbsp;&nbsp;&nbsp; 比较两者定义的不同：变量名 数据表.列名%type，变量名 数据表%rowtype。<br />
</span></span><span style="color: #008000"><font face="Verdana"><font face="Verdana">declare<br />
&nbsp;&nbsp; mytable emp%rowtype;<br />
begin<br />
&nbsp;&nbsp; select * into mytable<br />
&nbsp;&nbsp; from emp a <br />
&nbsp;&nbsp; where a.ename='SCOTT';<br />
&nbsp;&nbsp; dbms_output.put_line(mytable.empno||' '||mytable.job);<br />
end;</font></span></font></span></span></span></span><span style="color: #3366ff"><span style="color: #3366ff">&nbsp;</span></span></p>
<p><span style="color: #3366ff"><span style="color: #3366ff">流程控制：</span></span></p>
<p style="color: #000000">&nbsp;</p>
<p style="color: #000000">&nbsp;待续。。。<br />
<br />
posted @ 2009-02-03 11:33 断点 阅读(176) | 评论 (0) </p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/309574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-01-14 22:09 <a href="http://www.blogjava.net/tfzhu/archive/2010/01/14/309574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL左连接 </title><link>http://www.blogjava.net/tfzhu/archive/2010/01/14/309575.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Thu, 14 Jan 2010 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/01/14/309575.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/309575.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/01/14/309575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/309575.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/309575.html</trackback:ping><description><![CDATA[<p>SELECT b.c_dpt_cde&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CDptCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_prod_no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CProdNo,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_ply_no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CPlyNo,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_edr_no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CEdrNo,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_insrnt_cde&nbsp;&nbsp; as CInsrntCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_bs_cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CBsCur,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.n_bs_amt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as NBsAmt,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.n_exch_rate&nbsp;&nbsp;&nbsp; as NExchRate,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_rp_cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CRpCur,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.n_rp_amt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as NRpAmt,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.n_orig_cur_amt as NOrigCurAmt,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_main_con_cde as CMainConCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_sls_cde&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CSlsCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_cha_cls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CChaCls,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_cha_cde&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CChaCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.c_oper_cde&nbsp;&nbsp;&nbsp;&nbsp; as COperCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.t_cav_tm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as TCavTm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.t_upd_tm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as TUpdTm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_cav_pk_id&nbsp;&nbsp;&nbsp; as CCavPkId,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.c_rp_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CRpType,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.c_check_cde&nbsp;&nbsp;&nbsp; as CCheckCde,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.t_check_tm&nbsp;&nbsp;&nbsp;&nbsp; as TCheckTm,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.c_check_flag&nbsp;&nbsp; as CCheckFlag,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.c_check_memo&nbsp;&nbsp; as CCheckMemo,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_prmdue_pk_id as CPrmduePkId,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_paydue_pk_id as CPayduePkId,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_clmdue_pk_id as CClmduePkId,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_cavdoc_pk_id as CCavdocPkId,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_clm_no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as CClmNo,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_bill_flag&nbsp;&nbsp;&nbsp; as CBillFlag,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.c_feetyp_cde&nbsp;&nbsp; as CFeetypCde<br />
&nbsp; FROM web_fin_cav_doc a<br />
&nbsp; left join web_fin_cav_bill b on a.c_cav_pk_id = b.c_cav_pk_id<br />
&nbsp; left join web_fin_cav_rptyp c on a.c_cav_pk_id = c.c_cav_pk_id<br />
&nbsp;WHERE 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1<br />
&nbsp;&nbsp; AND 1 = 1;</p>
<p>&nbsp;</p>
<p>上面实现的是三个数据表之间的左连接。以前看见过两个表的左连接，而要实现三个表之间的左连接，还真有点困难，搞了半天才做出来。。。</p>
<br />
posted @ 2009-02-27 09:50 断点 阅读(356) | 评论 (0)
<img src ="http://www.blogjava.net/tfzhu/aggbug/309575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-01-14 22:09 <a href="http://www.blogjava.net/tfzhu/archive/2010/01/14/309575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复杂的SELECT语句 </title><link>http://www.blogjava.net/tfzhu/archive/2010/01/14/309573.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Thu, 14 Jan 2010 14:07:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/01/14/309573.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/309573.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/01/14/309573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/309573.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/309573.html</trackback:ping><description><![CDATA[<p>1.集合操作：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Union 用第二个查询结果合并第一个查询结果，同时<span style="color: #3366ff">不显示重复的行</span>。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Union all 检索出所有的行，包括<span style="color: #3366ff">重复的行</span>。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intersect 返回两个查询所检索出的共有行。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minus 返回将第二个查询检索出的行从第一个查询检索出的行中减去之后剩余的行。</p>
<p><font style="color: #008000" face="Verdana">select ename,dname,job <br />
from dept t,emp p<br />
where t.deptno=p.deptno and t.dname='SALES'<br />
<span style="color: #ff0000"><span style="color: #ff00ff">union/<span style="color: #ff00ff">intersect</span>/<span style="color: #ff00ff">minus</span></span><br />
</span>select ename,dname,job <br />
from dept t,emp p<br />
where t.deptno=p.deptno and p.job='MANAGER'<font face="Verdana">;</font></font></p>
<p>2.子查询：</p>
<p>可以在一个select语句中嵌入另一个完整的select语句，但此句的<span style="color: #3366ff">子查询的返回结果只能有一个，<span style="color: red">如想返回多个可用 in </span></span>。</p>
<p><span style="color: #008000"><span style="color: #008000">select ename,dname,job <br />
from dept t,emp p<br />
where t.deptno=p.deptno and <span style="color: #ff0000">t.dname=<br />
</span>(<br />
select dname <br />
from dept t,emp p<br />
where t.deptno=p.deptno and p.sal=1600.00<br />
);</span></span></p>
<p><font face="Verdana"><span style="color: #008000"><font face="Verdana">select&nbsp; ename,dname,job <br />
from dept t,emp p<br />
where t.deptno=p.deptno and <span style="color: #ff0000">t.dname&nbsp;</span><span style="color: #ff0000">in<br />
</span>(<br />
select dname <br />
from dept t,emp p<br />
where t.deptno=p.deptno and p.sal&gt;3000.00<br />
);</font></span></font></p>
<p>3.表的连接：</p>
<p><span style="color: #339966"><span style="color: #339966">select t.dname </span></span></p>
<p><span style="color: #339966"><span style="color: #339966">from emp p,dept t<br />
where<span style="color: #ff0000">&nbsp;p.deptno=t.deptno </span>and p.ename='SMITH';</span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000">由于实施了关系连接的两表是任何连接的，所有需要在where子句中设置<span style="color: #3366ff">主关键字等于外部关键字</span>的条件，否则查询结果不对。</span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000">4.case语句：</span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000">*简单case语句，使用表达式确定返回值，但<span style="color: #ff0000">case后的变量只有一个</span>；</span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000"><span style="color: #339966"><span style="color: #339966">select t.dname,t.loc,t.deptno,<br />
<span style="color: #ff0000">case <span style="color: #000000">t.deptno<br />
</span>when 10 then 'ACCOUNTING'<br />
when 20 then 'RESEARCH'<br />
when 30 then 'SALES'<br />
else 'T'<br />
end<br />
</span><span style="color: #ff0000"><span style="color: #ff0000"><span style="color: #339966"><span style="color: #339966">from dept t;</span></span></span></span></span></span></span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000"><span style="color: #ff0000"><span style="color: #ff0000"><span style="color: #339966"><span style="color: #339966"><span style="color: #000000"><span style="color: #000000">*搜索case语句，使用条件确定返回值，但<span style="color: #ff0000">when后面可以跟多个条件</span>。</span></span></span></span></span></span></span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000"><font style="color: #339966" face="Verdana"><span style="color: #ff0000"><span style="color: #339966"><span style="color: #339966">select t.dname,t.loc,t.deptno,<br />
</span></span></span><span style="color: #ff0000">case <br />
when <span style="color: #000000">t.deptno=10 <font face="Verdana">and t.loc='CHICAGO'</font> </span>then 'ACCOUNTING'<br />
when t.deptno=20 then 'RESEARCH'<br />
when t.deptno=30 then 'SALES'<br />
else 'T'<br />
end<br />
</span>from dept t;</font></span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000"><font style="color: #000000" color="#339966">5.decode函数：</font></span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000">decode（value，search_value，result，default_value）</span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000">如果value和search_value相等，则返回result，否则返回default_value。</span></span></p>
<p style="color: #000000"><span style="color: #339966"><span style="color: #000000"><font style="color: #339966" face="Verdana">select t.dname,t.loc,t.deptno,<br />
<span style="color: #ff0000">decode(t.deptno,<br />
10,'ACCOUNTING',<br />
20,'RESEARCH',<br />
30,'SALES',<br />
'T'<br />
)<br />
</span>from dept t;</font></span></span></p>
<br />
posted @ 2009-01-13 17:15 断点 阅读(240) | 评论 (0) 
<img src ="http://www.blogjava.net/tfzhu/aggbug/309573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-01-14 22:07 <a href="http://www.blogjava.net/tfzhu/archive/2010/01/14/309573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>select检索数据 </title><link>http://www.blogjava.net/tfzhu/archive/2010/01/14/309572.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Thu, 14 Jan 2010 14:06:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/01/14/309572.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/309572.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/01/14/309572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/309572.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/309572.html</trackback:ping><description><![CDATA[<p>1.在where子句中使用比较运算符：=&nbsp;，！=（不等于）&nbsp;， &lt;&gt;&nbsp;（不等于）， &lt; ，&gt; ，&lt;= ，&gt;= ，like。</p>
<p>2.使用比较运算符like：%通配符可以匹配任何长度的字符；_每个下划线匹配一个字母。</p>
<p>3.or：或的意思。</p>
<p>4.and：连接的两个条件必须同时满足。</p>
<p>5.not 非：<font face="Verdana"><font face="Verdana">select * from web_fin_dcr t where not t.n_item_no in(1,2);</font></font></p>
<p>6.between...and：指定某个范围内的所有值，包括指定值本身。</p>
<p>7.in用来指定一条列值：<font face="Verdana">select * from web_fin_dcr t where t.n_item_no in(1,2);</font></p>
<p>8.order by：对检索到的数据进行排序,默认为升序asc（ascend）,降序为desc（descend）。</p>
<p><font face="Verdana"><font face="Verdana">select * from web_fin_dcr t where&nbsp; t.n_item_no in(1,2,3) order by t.n_item_no desc;</font></font></p>
<p>9.distinct来检索唯一的表列值，也就是检索哪些不同的数据：</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;select distinct t.c_cav_flag from web_fin_dcr t where&nbsp; t.n_item_no in(1,2,3);</font></p>
<br />
posted @ 2009-01-12 16:19 断点 阅读(61) | 评论 (0) 
<img src ="http://www.blogjava.net/tfzhu/aggbug/309572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-01-14 22:06 <a href="http://www.blogjava.net/tfzhu/archive/2010/01/14/309572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>