﻿<?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-yxhxj2006-随笔分类-SQL</title><link>http://blogjava.net/yxhxj2006/category/52373.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 13 May 2015 01:39:20 GMT</lastBuildDate><pubDate>Wed, 13 May 2015 01:39:20 GMT</pubDate><ttl>60</ttl><item><title>Oracle分析函数入门</title><link>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425032.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Tue, 12 May 2015 16:46:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425032.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/425032.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/425032.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/425032.html</trackback:ping><description><![CDATA[<h1><a id="cb_post_title_url" href="http://www.cnblogs.com/linjiqin/archive/2012/04/04/2431975.html" style="text-decoration: none; color: #1a8bc8;">一、Oracle分析函数入门</a></h1><div id="cnblogs_post_body" style="margin-bottom: 20px; word-break: break-word; color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px;"><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;"><strong>分析函数是什么？</strong><br />分析函数是Oracle专门用于<span style="line-height: 1.5; color: #ff0000;">解决复杂报表统计需求</span>的功能强大的函数，<span style="line-height: 1.5; color: #ff0000;">它可以在数据中进行分组然后计算基于组的某种统计值</span>，并且每一组的每一行都可以返回一个统计值。</p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;"><strong>分析函数和聚合函数的不同之处是什么？</strong><br />普通的聚合函数用group by分组，<span style="line-height: 1.5; color: #ff0000;">每个分组</span>返回一个统计值，而分析函数采用partition by分组，并且<span style="line-height: 1.5; color: #ff0000;">每组每行</span>都可以返回一个统计值。</p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;"><strong>分析函数的形式</strong><br />分析函数带有一个开窗函数over()，包含三个分析子句:分组(partition by), 排序(order by), 窗口(rows) ，他们的使用形式如下：over(partition by xxx order by yyy rows between zzz)。<br />注：窗口子句在这里我只说rows方式的窗口,range方式和滑动窗口也不提</p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;</p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;"><strong>分析函数例子(在scott用户下模拟)</strong></p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;"><span style="line-height: 1.5; color: #ff0000;">示例目的：显示各部门员工的工资，并附带显示该部分的最高工资。<br /><br /></span></p><div class="cnblogs_code" style="margin: 5px 0px; color: #000000; font-size: 12px !important;"><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div><pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Courier New' !important;"><span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">显示各部门员工的工资，并附带显示该部分的最高工资。</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span><span style="color: #0000ff; line-height: 1.5 !important;">SELECT</span> E.DEPTNO,<br />       E.EMPNO,<br />       E.ENAME,<br />       E.SAL,<br />       LAST_VALUE(E.SAL) <br />       <span style="color: #0000ff; line-height: 1.5 !important;">OVER</span>(PARTITION <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> E.DEPTNO <br />            <span style="color: #0000ff; line-height: 1.5 !important;">ORDER</span> <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> E.SAL ROWS <br />            <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">unbounded preceding and unbouned following针对当前所有记录的前一条、后一条记录，也就是表中的所有记录</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>            <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">unbounded：不受控制的，无限的</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>            <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">preceding：在...之前</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>            <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">following：在...之后</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>            <span style="color: #808080; line-height: 1.5 !important;">BETWEEN</span> UNBOUNDED PRECEDING <span style="color: #808080; line-height: 1.5 !important;">AND</span> UNBOUNDED FOLLOWING) MAX_SAL<br />  <span style="color: #0000ff; line-height: 1.5 !important;">FROM</span> EMP E;</pre><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div></div><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">运行结果：</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><img src="http://pic002.cnblogs.com/images/2012/270324/2012040415535157.png" alt="" style="border: 0px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><span style="line-height: 1.5; color: #ff0000;">示例目的：按照deptno分组，然后计算每组值的总和</span></p><div class="cnblogs_code" style="margin: 5px 0px; color: #000000; font-size: 12px !important;"><pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Courier New' !important;"><span style="color: #0000ff; line-height: 1.5 !important;">SELECT</span> EMPNO,<br />       ENAME,<br />       DEPTNO,<br />       SAL,<br />       <span style="color: #ff00ff; line-height: 1.5 !important;">SUM</span>(SAL) <span style="color: #0000ff; line-height: 1.5 !important;">OVER</span>(PARTITION <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> DEPTNO <span style="color: #0000ff; line-height: 1.5 !important;">ORDER</span> <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> ENAME) max_sal<br />  <span style="color: #0000ff; line-height: 1.5 !important;">FROM</span> SCOTT.EMP;</pre></div><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">运行结果：</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><img src="http://pic002.cnblogs.com/images/2012/270324/2012040415590388.png" alt="" style="border: 0px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><span style="line-height: 1.5; color: #ff0000;">示例目的：对各部门进行分组，并附带显示第一行至当前行的汇总</span></p><div class="cnblogs_code" style="margin: 5px 0px; color: #000000; font-size: 12px !important;"><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div><pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Courier New' !important;"><span style="color: #0000ff; line-height: 1.5 !important;">SELECT</span> EMPNO,<br />       ENAME,<br />       DEPTNO,<br />       SAL,<br />       <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">注意ROWS BETWEEN unbounded preceding AND current row  是指第一行至当前行的汇总</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>       <span style="color: #ff00ff; line-height: 1.5 !important;">SUM</span>(SAL) <span style="color: #0000ff; line-height: 1.5 !important;">OVER</span>(PARTITION <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> DEPTNO <br />                     <span style="color: #0000ff; line-height: 1.5 !important;">ORDER</span> <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> ENAME <br />                     ROWS <span style="color: #808080; line-height: 1.5 !important;">BETWEEN</span> UNBOUNDED PRECEDING <span style="color: #808080; line-height: 1.5 !important;">AND</span> <span style="color: #0000ff; line-height: 1.5 !important;">CURRENT</span> ROW) max_sal<br />  <span style="color: #0000ff; line-height: 1.5 !important;">FROM</span> SCOTT.EMP;</pre><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div></div><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">运行结果：</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><img src="http://pic002.cnblogs.com/images/2012/270324/2012040416042411.png" alt="" style="border: 0px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><span style="line-height: 1.5; color: #ff0000;">示例目标：当前行至最后一行的汇总</span></p><div class="cnblogs_code" style="margin: 5px 0px; color: #000000; font-size: 12px !important;"><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div><pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Courier New' !important;"><span style="color: #0000ff; line-height: 1.5 !important;">SELECT</span> EMPNO,<br />       ENAME,<br />       DEPTNO,<br />       SAL,<br />       <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">注意ROWS BETWEEN current row AND unbounded following 指当前行到最后一行的汇总</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>       <span style="color: #ff00ff; line-height: 1.5 !important;">SUM</span>(SAL) <span style="color: #0000ff; line-height: 1.5 !important;">OVER</span>(PARTITION <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> DEPTNO <br />                     <span style="color: #0000ff; line-height: 1.5 !important;">ORDER</span> <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> ENAME <br />                     ROWS <span style="color: #808080; line-height: 1.5 !important;">BETWEEN</span> <span style="color: #0000ff; line-height: 1.5 !important;">CURRENT</span> ROW <span style="color: #808080; line-height: 1.5 !important;">AND</span> UNBOUNDED FOLLOWING) max_sal<br />  <span style="color: #0000ff; line-height: 1.5 !important;">FROM</span> SCOTT.EMP;</pre><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div></div><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">运行结果：</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><img src="http://pic002.cnblogs.com/images/2012/270324/2012040416132921.png" alt="" style="border: 0px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><span style="line-height: 1.5; color: #ff0000;">&nbsp;示例目标：当前行的上一行(rownum-1)到当前行的汇总</span></p><div class="cnblogs_code" style="margin: 5px 0px; color: #000000; font-size: 12px !important;"><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div><pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Courier New' !important;"><span style="color: #0000ff; line-height: 1.5 !important;">SELECT</span> EMPNO,<br />       ENAME,<br />       DEPTNO,<br />       SAL,<br />       <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">注意ROWS BETWEEN 1 preceding AND current row 是指当前行的上一行(rownum-1)到当前行的汇总 </span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>       <span style="color: #ff00ff; line-height: 1.5 !important;">SUM</span>(SAL) <span style="color: #0000ff; line-height: 1.5 !important;">OVER</span>(PARTITION <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> DEPTNO <br />                     <span style="color: #0000ff; line-height: 1.5 !important;">ORDER</span> <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> ENAME ROWS <br />                     <span style="color: #808080; line-height: 1.5 !important;">BETWEEN</span> <span style="color: #800000; font-weight: bold; line-height: 1.5 !important;">1</span> PRECEDING <span style="color: #808080; line-height: 1.5 !important;">AND</span> <span style="color: #0000ff; line-height: 1.5 !important;">CURRENT</span> ROW) max_sal<br />  <span style="color: #0000ff; line-height: 1.5 !important;">FROM</span> SCOTT.EMP;</pre><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div></div><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">运行结果：</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><img src="http://pic002.cnblogs.com/images/2012/270324/2012040416170288.png" alt="" style="border: 0px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><span style="line-height: 1.5; color: #ff0000;">示例目标：&nbsp;&nbsp;&nbsp;当前行的上一行(rownum-1)到当前行的下辆行(rownum+2)的汇总&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><div class="cnblogs_code" style="margin: 5px 0px; color: #000000; font-size: 12px !important;"><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div><pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Courier New' !important;"><span style="color: #0000ff; line-height: 1.5 !important;">SELECT</span> EMPNO,<br />       ENAME,<br />       DEPTNO,<br />       SAL,<br />       <span style="color: #008080; line-height: 1.5 !important;">--</span><span style="color: #008080; line-height: 1.5 !important;">注意ROWS BETWEEN 1 preceding AND 1 following 是指当前行的上一行(rownum-1)到当前行的下辆行(rownum+2)的汇总</span><span style="color: #008080; line-height: 1.5 !important;"><br /></span>       <span style="color: #ff00ff; line-height: 1.5 !important;">SUM</span>(SAL) <span style="color: #0000ff; line-height: 1.5 !important;">OVER</span>(PARTITION <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> DEPTNO <br />                     <span style="color: #0000ff; line-height: 1.5 !important;">ORDER</span> <span style="color: #0000ff; line-height: 1.5 !important;">BY</span> ENAME <br />                     ROWS <span style="color: #808080; line-height: 1.5 !important;">BETWEEN</span> <span style="color: #800000; font-weight: bold; line-height: 1.5 !important;">1</span> PRECEDING <span style="color: #808080; line-height: 1.5 !important;">AND</span> <span style="color: #800000; font-weight: bold; line-height: 1.5 !important;">2</span> FOLLOWING) max_sal<br />  <span style="color: #0000ff; line-height: 1.5 !important;">FROM</span> SCOTT.EMP;</pre><div class="cnblogs_code_toolbar" style="margin-top: 5px;"><span class="cnblogs_code_copy" style="padding-right: 5px; line-height: 1.5 !important;"><a title="复制代码" style="color: #1a8bc8; border: none !important;"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="border: none !important;" /></a></span></div></div><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;">运行结果：</p><p style="margin-top: 10px; margin-bottom: 10px; background-color: #ffffff;"><img src="http://pic002.cnblogs.com/images/2012/270324/2012040416191976.png" alt="" style="border: 0px;" /></p><p style="line-height: 1.5; margin-top: 10px; margin-bottom: 10px;"><span style="line-height: 1.5; color: #ff0000;"><br /></span></p></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/425032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2015-05-13 00:46 <a href="http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常见分析函数详解</title><link>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425033.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Tue, 12 May 2015 16:46:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425033.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/425033.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/425033.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/425033.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 三、常见分析函数详解为了方便进行实践，特将演示表和数据罗列如下：一、创建表create table t(    bill_month varchar2(12) ,    area_code number,    net_type varchar(2),    local_fare number );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;二、插入数据insert i...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425033.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/425033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2015-05-13 00:46 <a href="http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 常用函数</title><link>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425031.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Tue, 12 May 2015 16:37:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425031.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/425031.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425031.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/425031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/425031.html</trackback:ping><description><![CDATA[<div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">&nbsp; 这个系列我将整理一些日常我们经常使用到的ORACLE函数，鉴于篇幅太长，我大体会按下面分类来整理、汇总这些常用的ORACLE函数，如果有些常用函数没有被整理进来，也希望大家指点一二。</div><p style="line-height: 25px; margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; background-color: #ffffff;">&nbsp;1： 聚合函数</p><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">2： 日期函数</div><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">3： 字符串函数</div><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">4： 格式化函数</div><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">5： 类型转换函数</div><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">6： 加密函数</div><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">7： 控制流函数</div><div style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; background-color: #ffffff;">8： 数学函数</div><div style="background-color: #ffffff;"><font color="#333333" face="Georgia, Times New Roman, Times, sans-serif"><span style="line-height: 25px;">9： 系统信息函数</span></font><br /><font color="#333333" face="Georgia, Times New Roman, Times, sans-serif"><span style="line-height: 25px;">10：分析函数</span></font><br /><br /><div><span style="line-height: 25px;">------------------------------------------聚合函数---------------------------------------------</span></div><div><span style="line-height: 25px;">--1: &nbsp; AVG(DISTINCT|ALL)</span></div><div><span style="line-height: 25px;"><br /></span></div><div><span style="line-height: 25px;">ALL表示对所有的值求平均值,DISTINCT只对不同的值求平均值</span></div><div><span style="line-height: 25px;">SELECT AVG(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT AVG(DISTINCT SAL) FROM SCOTT.EMP;</span></div><div></div><div><span style="line-height: 25px;">--2: &nbsp; MAX(DISTINCT|ALL)</span></div><div><span style="line-height: 25px;"><br /></span></div><div><span style="line-height: 25px;">求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次</span></div><div><span style="line-height: 25px;"><br /></span></div><div><span style="line-height: 25px;">(加不加查询结果一致，不知DISTINCT有什么用途，不同于AVG等聚合函数)</span></div><div><span style="line-height: 25px;">SELECT MAX(DISTINCT SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT MAX(SAL) FROM SCOTT.EMP</span></div><div></div><div><span style="line-height: 25px;">--3: &nbsp; MIN(DISTINCT|ALL)</span></div><div><span style="line-height: 25px;">求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次</span></div><div><span style="line-height: 25px;">SELECT MIN(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT MIN(DISTINCT SAL) FROM SCOTT.EMP;<br /></span></div><div><span style="line-height: 25px;"><br />--4: &nbsp;STDDEV(distinct|all)</span></div><div><span style="line-height: 25px;">求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差</span></div><div><span style="line-height: 25px;">SELECT STDDEV(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT STDDEV(DISTINCT SAL) FROM SCOTT.EMP;</span></div><div><br /></div><div><span style="line-height: 25px;">--5: &nbsp; VARIANCE(DISTINCT|ALL)</span></div><div><span style="line-height: 25px;">求协方差 &nbsp;ALL表示对所有的值求协方差,DISTINCT表示只对不同的值求协方差</span></div><div><span style="line-height: 25px;">SELECT VARIANCE(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT VARIANCE(DISTINCT SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;"><br />--6: &nbsp;SUM(DISTINCT|ALL)</span></div><div><span style="line-height: 25px;">求和 &nbsp;ALL表示对所有值求和，DISTINCT表示只对不同值求和(相同值只取一次)</span></div><div><span style="line-height: 25px;">SELECT SUM(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT SUM(DISTINCT SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;"><br /><br />--7：COUNT(DISTINCT|ALL)</span></div><div><span style="line-height: 25px;">求记录、数据个数。 ALL对所有记录，数组做统计， DISTINCT只对不同值统计(相同值只取一次)</span></div><div><span style="line-height: 25px;">SELECT COUNT(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT COUNT(DISTINCT SAL) FROM SCOTT.EMP; &nbsp;</span></div><div>&nbsp;</div><div><span style="line-height: 25px;">----8： MEDIAN</span></div><div><span style="line-height: 25px;">求中位数</span></div><div><span style="line-height: 25px;">SELECT MEDIAN(SAL) FROM SCOTT.EMP;</span></div><div><span style="line-height: 25px;">SELECT MEDIAN(DISTINCT SAL) FROM SCOTT.EMP; &nbsp;--错误：DISTINCT 选项在此函数中禁用。</span></div><div><span style="line-height: 25px;">----------------------------------------------------------------------------------------------</span></div></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/425031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2015-05-13 00:37 <a href="http://www.blogjava.net/yxhxj2006/archive/2015/05/13/425031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下导入、导出mysql数据库命令</title><link>http://www.blogjava.net/yxhxj2006/archive/2015/03/26/423853.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Thu, 26 Mar 2015 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2015/03/26/423853.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/423853.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2015/03/26/423853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/423853.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/423853.html</trackback:ping><description><![CDATA[<p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;">一、导出数据库用mysqldump命令（注意mysql的安装路径，即此命令的路径）：<br />1、导出数据和表结构：<br />mysqldump -u用户名 -p密码 数据库名 &gt; 数据库名.sql<br />#/usr/local/mysql/bin/&nbsp;&nbsp; mysqldump -uroot -p abc &gt; abc.sql<br />敲回车后会提示输入密码</p><p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;">2、只导出表结构<br />mysqldump -u用户名 -p密码 -d 数据库名 &gt; 数据库名.sql<br />#/usr/local/mysql/bin/&nbsp;&nbsp; mysqldump -uroot -p -d abc &gt; abc.sql</p><p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;">注：/usr/local/mysql/bin/&nbsp; ---&gt;&nbsp; mysql的data目录</p><p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;"><br />二、导入数据库<br />1、首先建空数据库<br />mysql&gt;create database abc;</p><p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;">2、导入数据库<br />方法一：<br />（1）选择数据库<br />mysql&gt;use abc;<br />（2）设置数据库编码<br />mysql&gt;set names utf8;<br />（3）导入数据（注意sql文件的路径）<br />mysql&gt;source /home/abc/abc.sql;<br />方法二：<br />mysql -u用户名 -p密码 数据库名 &lt; 数据库名.sql<br />#mysql -uabc_f -p abc &lt; abc.sql</p><p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;"><span style="line-height: 1.8 !important; color: #ff0000;">建议使用第二种方法导入。</span></p><p style="margin-top: 10px; margin-bottom: 10px; color: #333333; font-family: Verdana, Arial, sans-serif, 'Lucida Grande'; font-size: 13px; line-height: 24px; background-color: #d6d3d6;">注意：有命令行模式，有sql命令</p><img src ="http://www.blogjava.net/yxhxj2006/aggbug/423853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2015-03-26 14:19 <a href="http://www.blogjava.net/yxhxj2006/archive/2015/03/26/423853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL 请选择合适的列</title><link>http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413799.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Sat, 17 May 2014 17:05:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413799.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/413799.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413799.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/413799.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/413799.html</trackback:ping><description><![CDATA[思维导图 <br />点击图片，可查看大图。<br /> <p><a href="http://files.jb51.net/file_images/article/201205/2012052316483127.png" target="_blank"><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282555.png" /></a></p>介绍  <div>&nbsp;</div> <div>情况：如果你的表结构设计不良或你的索引设计不佳，那么请你优化你的表结构设计和给予合适的索引，这样你的查询性能就能提高几个数量级。&#8212;&#8212;数据越大，索引的价值越能体现出来。</div> <div>&nbsp;</div> <div>我们要提高性能，需要考虑的因素：</div> <div> <div>1、设计架构</div> <div>2、设计索引</div> <div>3、评估查询性能</div></div> <div>&nbsp;  <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282556.png" /></p></div> <div>今天要讲的是表列的设计，暂不谈索引设计。我会在下一章讲索引设计。</div> <div>&nbsp;</div> <div> <div> <div>选择数据类型</div> <div>&nbsp;</div> <div>选择正确的数据类型，对于提高性能至关重要。</div> <div>下面给出几种<strong>原则</strong>，有利于帮助你选择何种类型。</div> <div>&nbsp;</div> <div>1、更小通常更好。</div> <div>　　使用最小的数据类型。&#8212;&#8212;更少的磁盘空间，内存和CPU缓存。而且需要的CPU的周期也更少。</div> <div>&nbsp;</div> <div>2、简单就好。</div> <div>　　整数代价小于字符。&#8212;&#8212;因为字符集和排序规则使字符比较更复杂。</div> <div>　　1&gt;mysql内建类型（如timestamp,date)优于使用字符串保存。</div> <div>　　2&gt;使用整数保存ip地址。</div> <div>&nbsp;</div> <div>3、尽量避免NULL&#8212;&#8212;如果计划对列进行索引，尽量避免把列设置为NULL</div> <div>　　尽可能把字段定义为NOT NULL。&#8212;&#8212;可以放置一个默认值，如&#8216;'，0，特殊字符串。</div> <div>　　原因：</div> <div>　　　　（1）MYSQL难以优化NULL列。NULL列会使索引，索引统计和值更加复杂。</div> <div>　　　　（2）NULL列需要更多的存储空间，还需要在MYSQL内部进行特殊处理。</div> <div>　　　　（3）NULL列加索引，每条记录都需要一个额外的字节，还导致MyISAM中固定大小的索引变成可变大小的索引。</div> <div>&nbsp;  <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282557.png" /></p></div> <p>决定列的数据类型，我们应该遵循下面两步。</p> <p>第一步、大致决定数据类型。&#8212;&#8212;判断是数字，字符串还是时间等。这通常很直观。</p> <p>第二步、确定特定的类型。</p> <p>　　很多数据类型能够保存同类型的数据，但是我们要发现，他们在<strong>存储</strong>的范围，<strong>精度和物理</strong>空间之间的差别（磁盘或内存空间）。如：datetime和timestamp能保存同样类型的数据：日期和时间。&#8212;&#8212;timestamp使用datetime一半的空间;能保存时区;拥有特殊的自动更新能力。&nbsp;</p> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282558.png" /></p> <div>品味数据类型</div> <div>&nbsp;</div></div></div> <div>整数</div> <div>&nbsp;</div> <div>1、存储类型&#8212;&#8212;数据范围为-2^(n-1)到2^(n-1)-1，这里的n是所需存储空间的位数。</div> <div>　　&nbsp;　　类型名称　　　　占用位数　　&nbsp;&nbsp;　　数据范围　　　　TINYINT&nbsp;　　　　8&nbsp;　　-2^7 ~  2^7-1&nbsp;　　SMALLINT&nbsp;　　　　16　　&nbsp;　　-2^15~2^15-1　　&nbsp;　　MEDIUMINT　　&nbsp;　　　　24　　&nbsp;　　 -2^23~2^23-1&nbsp;　　INT&nbsp;　　　　32&nbsp;　　-2^31~2^23-1&nbsp;　　BIGINT　　　　&nbsp;64&nbsp;&nbsp;　　-2^63~2^63-1   <p>&nbsp;2、unsigned属性表示不允许负数，并大致把正上限提高了一倍。如TINYINT UNSIGNED保存的范围为0到255而不是-127到128</p> <p>&nbsp;</p> <p>3、MYSQL对整数类型定义宽度，比如int（1）和int（22）对于存储和计算是一样的。只规定了MYSQL的交互工具（如命令行客户端）用来显示字符的个数。</p> <p>&nbsp;</p> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282559.png" /></p> <div>实数</div> <div>&nbsp;</div> <div>实数有分数部分（小数部分）。</div> <div>存储类型：FLOAT和DOUBLE，DECIMAL。</div> <div>占用大小：FLOAT 4个字节，DOUBLE 8个字节。DECIMAL受到MYSQL版本影响，早期版本254个数字，5.0以上65个数字。</div> <div>区别：1、FLOAT和DOUBLE支持标准浮点运算进行近似计算。</div> <div>　　　2、DECIMAL进行DECIMAL运算，CPU并不支持对它进行直接计算。浮点运算会快一点，因为计算直接在CPU上进行。</div> <div>　　 &nbsp; 3、DECIMAL只是一个存储格式，在计算时会被转换为DOUBLE类型。</div> <div>　　　4、DECIMAL(18,9)使用9个字节，小数点前4个字节，小数点1个字节，小数点后4个字节。</div> <div>　　　5、DECIMAL只有对小数进行精确计算的时候才使用它，如保存金融数据。</div> <div>&nbsp;  <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282560.png" /></p></div> <div>&nbsp;  <div>字符串类型</div> <div>&nbsp;</div> <div>1、varchar</div> <div>　　（1）保存可变长字符串。</div> <div>　　　　理解：比固定长度占用更少的存储空间，因为它只占用自己需要的空间。例外情况：使用ROW_FORMAT=FIXED创建的MyISAM表，它为每行使用固定长度的空间，可能会造成浪费。</div> <div>　　（2）存储长度信息。如果定义的列小于或等于255，则使用1个字节存储长度值，假设使用latin1字符集，如varchar（10）将占用11个字节的存储空间。反过来，varchar（1000），则占用1002个字节的存储空间。</div> <div>　　（3）节约空间，对性能有帮助。</div> <div>　　（4）5.0版本以上，无论是取值还是保存，MySQL都会保留字符串末尾的空格。</div> <div> <blockquote><strong>只分配真正需要的空间</strong><br />使用varchar(5)和varchar(200)保存'hello'占用空间是一样的。&#8212;&#8212;这里应该指的是磁盘上的空间。<br />那么使用较短列有何优势？&#8212;&#8212;巨大的优势<br />　　较大的列会使用更多的内存，因为MySQL通常会分配固定大小的内存块（如varchar(200)会用200个字符大小的内存空间）来保存值(然后对值进行trim操作，最后放入磁盘)或取值。&#8212;&#8212;这对排序或使用基于内存的临时表尤其不好。</blockquote></div> <div> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282561.png" /></p></div> <div>2、char</div> <div>　　（1）固定长度。</div> <div>　　（2）保存值时，去掉末尾的空格。</div> <div> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282562.png" /></p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img style="vertical-align: middle" alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282563.png" />&nbsp; 咱们再看看varchar</p> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282564.png" /></p></div> <div>　　（3）char常用于很短字符串或长度近似相同的字符串的时候很有用。如存储用户密码的MD5哈希值，它的长度总是一样的。</div> <div>　　char优于varchar的地方？</div> <div>　　1&gt;&gt; 对于经常改变的值，char优于varchar，因为固定长度行不容易产生碎片。&#8212;&#8212;当最长长度远大于平均长度，并且很少发生更新的时候，通常适合使用varchar。</div> <div>　　2&gt;&gt;对于很短的列，char的效率也是高于varchar的。如对于单字节字符集（如latin1)，char(1)只会占用1个字节，而varchar(2)会占用2个字节（有一个字节用来存储长度的信息）。</div> <div>&nbsp;</div> <div> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282565.png" /></p></div> <div>&nbsp;</div> <div>&nbsp;3、text</div> <div>用于保存大量数据。</div> <div>　　（1）InnoDB在它们较大的时候会使用&#8220;外部&#8221;存储区域来进行保存。&#8212;&#8212;所以需要足够的外部存储空间来保存实际的值。</div> <div>　　（2）排序方式不同于其他字符类型，不会按照完整长度进行排序，而只是按照max_sort_length规定的前若干个字节进行排序。</div> <div>&nbsp;  <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282566.png" /></p> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282567.png" /></p></div> <div>　</div> <div>4、使用ENUM代替字符串类型</div> <div>　　（1）ENUM列可以存储65 535个不同的字符串。</div> <div>　　（2）以紧凑方式保存。根据列表中值的数量，把它们压缩到1到2个字节中。</div> <div>　　（3）MySQL在内部把每个值都保存为整数，以表示值在列表中的位置。</div> <div>　　（4）保留了一份&#8220;查找表&#8221;，来表示整数和字符串在表的.frm文件中的映射关系。</div> <div>　　（5）ENUM字符列是固定的，添加、删除字符串须使用ALTER TABLE。</div> <div>　　（6）使用案例：权限表中使用ENUM来保存Y值和N值。</div> <div>&nbsp;使用方法：</div> <div> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282568.png" /></p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282563.png" />&nbsp;&nbsp;</p> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282569.png" /></p> <p>在对enum列使用order by的时候，是按数字排序的，而不是字符串排序。</p> <p><img alt="" src="http://files.jb51.net/file_images/article/201205/2012052800282570.png" /></p> <p><strong>日期和时间类型</strong></p> <div>DATETIME：保存大范围的值。封装格式：YYYYMMDDHHMMSS。&#8212;&#8212;与时区无关，使用8字节存储空间。</div> <p>TIMESTAMP：保存自1970年1月1日午夜（格林尼治标准时间）以来的秒数。&#8212;&#8212;使用4字节存储空间。</p> <div> <blockquote> <p>通常使用TIMESTAMP，它比DATETIME更节约空间。有时人们把Unix的时间戳保存为整数值，但是这通常没有任何好处。&#8212;&#8212;这种格式处理起来不太方便，我们并不推荐它。</p></blockquote></div></div></div></div> <div> <div>&nbsp;</div>&nbsp;</div> <div>&nbsp;经验交谈</div> <div>&nbsp;</div> <div>　　1、我们在为列选择数据类型的时候，不仅要考虑存储类型大小，还要考虑MySQL如何对它们进行计算和比较。例如：MySQL在内部把ENUM和SET类型保存为整数，但是在比较的时候把它们转换为字符串。</div> <div>&nbsp;</div> <div>　　2、我们要在相关表中使用同样的类型，类型之间要精确匹配，包括诸如UNSIGNED这样的属性。</div> <div>&nbsp;</div> <div>　　3、混合不同的数据类型会导致性能问题，即使没有性能问题，隐式的类型转换也能导致难以察觉的错误。</div> <div>&nbsp;</div> <div>　　4、选择最小的数据类型要考虑将来留出的增长空间。如，中国的省份，我们知道不会有成千上万个，因此不必用INT。TINYINT就足够了，它比INT小3字节。</div> <div>&nbsp;</div> <div>　　5、整数通常是最佳的数据类型，因为它速度快，并且能使用AUTO_INCREMENT。</div> <div>&nbsp;</div> <div>　　6、要尽可能避免字符串做为列的数据类型，因为它们占用了很多空间并且通常必整数类型要慢。MyISAM默认情况下为字符串使用了压缩索引，这使查找更为缓慢。</div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/413799.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2014-05-18 01:05 <a href="http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413799.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深入理解where 1=1的用处</title><link>http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413798.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Sat, 17 May 2014 17:04:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413798.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/413798.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/413798.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/413798.html</trackback:ping><description><![CDATA[<p>where 1=1有什么用？在SQL语言中，写这么一句话就跟没写一样。</p> <p>select * from table1 where 1=1与select * from table1完全没有区别，甚至还有其他许多写法，1&lt;&gt;2，'a'='a','a'&lt;&gt;'b'，其目的就只有一个，where 的条件为永真，得到的结果就是未加约束条件的。</p> <p>在SQL注入时会用到这个，例如select * from table1 where name='lala'给强行加上select * from table1 where name='lala' or 1=1这就又变成了无约束的查询了。</p> <p>最近发现的妙用在于，在不定数量查询条件情况下，1=1可以很方便的规范语句。例如一个查询可能有name,age,height,weight约束，也可能没有，那该如何处理呢？</p> <p>String sql=select * from table1 where 1=1</p> <p>为什么要写多余的1=1？马上就知道了。<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">if</span>(!name.equals("")){<br />sql=sql+"name='"+name+"'";<br />}<br /><span style="color: #0000FF; ">if</span>(!age.equals("")){<br />sql=sql+"age'"+age+"'";<br />}<br /><span style="color: #0000FF; ">if</span>(!height.equals("")){<br />sql=sql+"height='"+height+"'";<br />}<br /><span style="color: #0000FF; ">if</span>(!weight.equals("")){<br />sql=sql+"weight='"+weight+"'";<br />}</div><p>如果不写1=1呢，那么在每一个不为空的查询条件面前，都必须判断有没有where字句，否则要在第一个出现的地方加where</p><p>&nbsp;</p><p>where 1=1的写法是为了检化程序中对条件的检测<br />打个比方有三个参数a, b, c<br />@sql=select * from tb'<br />这三个参数都可能为空<br />这时你要构造语句的话,一个个检测再写语句就麻烦<br />比如<br />if @a is not null<br />@sql=@sql + " where a=' + @a<br />if @b is not null<br />这里你怎么写?要不要加where 或直接用 and ?,你这里还要对@a是否为空进行检测</p><p>用上 where 1=1 之后,就不存在这样的问题, 条件是 and 就直接and ,是or就直接接 or</p><p><strong>拷贝表 <br /></strong>create&nbsp;&nbsp; table_name&nbsp;&nbsp; as&nbsp;&nbsp; select&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; Source_table&nbsp;&nbsp; where&nbsp;&nbsp; 1=1; </p><p>    </p><p><strong>复制表结构 <br /></strong>create&nbsp;&nbsp; table_name&nbsp;&nbsp; as&nbsp;&nbsp; select&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; Source_table&nbsp;&nbsp; where&nbsp;&nbsp; 1 &lt;&gt; 1;&nbsp;</p><img src ="http://www.blogjava.net/yxhxj2006/aggbug/413798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2014-05-18 01:04 <a href="http://www.blogjava.net/yxhxj2006/archive/2014/05/18/413798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>按某一字段分组取最大(小)值所在行的数据 </title><link>http://www.blogjava.net/yxhxj2006/archive/2012/11/02/390711.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Fri, 02 Nov 2012 11:21:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/11/02/390711.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/390711.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/11/02/390711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/390711.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/390711.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: /*  数据如下：  name val memo  a&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp; a2(a的第二个值)  a&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; a1--a的第一个值  a&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp; a3:a的第三个值  b&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; b1-...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2012/11/02/390711.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/390711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-11-02 19:21 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/11/02/390711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过存储过程对SQLSERVER2005分页</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386542.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Wed, 29 Aug 2012 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386542.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/386542.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/386542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/386542.html</trackback:ping><description><![CDATA[<span style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; font-size: 12px; ">1 通过select top进行分页查询</span><span style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; font-size: 12px; ">&nbsp;&nbsp;</span>&nbsp;<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; ">查询原理：需要查询第N页时，首先取到前N页的所有数据，然后排除前N-1页的数据，就是第N页的数据</span><span style="color: #008000; ">*/</span>&nbsp;&nbsp;<br />create&nbsp;&nbsp;PROCEDURE&nbsp;GetDataWithPage&nbsp;&nbsp;<br />(&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@pageIndex&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;=&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页码&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@pageSize&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;=&nbsp;20,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页尺寸&nbsp;&nbsp;&nbsp;&nbsp;<br />)&nbsp;&nbsp;<br />as&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;@pageIndex&nbsp;&lt;&nbsp;1&nbsp;&nbsp;<br />begin&nbsp;&nbsp;<br />Set&nbsp;@pageIndex=1&nbsp;&nbsp;<br />end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />--如果是第一页时要执行的语句&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;@PageIndex&nbsp;=&nbsp;1&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;top&nbsp;((@PageIndex)*@PageSize)&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;field1,field2,--查询字段&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldOrderby&nbsp;--排序字段，按什么字段分页的字段，建议使用主键，或者唯一键&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;tableName&nbsp;--查询表名称&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;id&gt;100&nbsp;--查询条件&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;order&nbsp;by&nbsp;fieldOrderby&nbsp;--排序字段，按什么字段分页的字段，&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;count(*)&nbsp;as&nbsp;Total&nbsp;from&nbsp;tableName&nbsp;where&nbsp;id&gt;100--返回总记录数&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;top&nbsp;((@PageIndex)*@PageSize)&nbsp;--取出前PageIndex页的数据&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;field1,field2,--查询字段&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldOrderby&nbsp;--排序字段，按什么字段分页的字段，建议使用主键，或者唯一键&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;into&nbsp;#tempTable&nbsp;--插入临时表&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;tableName&nbsp;--查询表名称&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;id&gt;100&nbsp;--查询条件&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;order&nbsp;by&nbsp;fieldOrderby&nbsp;--排序字段，按什么字段分页的字段，&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----取出前pageIndex页数据插入临时表&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;------排除前pageIndex-1页的数据，取出第pageIndex的数据&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;top&nbsp;(@PageIndex)&nbsp;--&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;field1,field2,--排序字段&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldOrderby&nbsp;--&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;#tempTable&nbsp;--从临时表中取数据&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;fieldOrderby&nbsp;--&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;in&nbsp;(select&nbsp;&nbsp;top&nbsp;((@PageIndex-1)*@PageSize)&nbsp;fieldOrderby&nbsp;from&nbsp;#tempTable)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----&nbsp;从临时表取出&nbsp;pageIndex的数据&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----可以根据升序或者降序把not&nbsp;in&nbsp;改为&nbsp;&lt;min(fieldOrderby)或者&gt;max(fieldOrderby)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;count(*)&nbsp;as&nbsp;Total&nbsp;from&nbsp;tableName&nbsp;where&nbsp;id&gt;100--返回总记录数&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;<br />end&nbsp;&nbsp;<br /><br /><br />2通过系统存储过程进行分页查询<br /><br />[sql]&nbsp;view&nbsp;plaincopy<br />&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;&nbsp;<br />&nbsp;一共返回三个表第一个表为空&nbsp;查询字符串的条件中有&nbsp;like&nbsp;,in&nbsp;可能出现问题，具体出现原因不明，第二个表包含总页数，总行数，&nbsp;&nbsp;<br />当前页第三个表包含查询记录&nbsp;&nbsp;<br />&nbsp;&nbsp;<br /></span><span style="color: #008000; ">*/</span>&nbsp;&nbsp;<br />create&nbsp;&nbsp;&nbsp;procedure&nbsp;[dbo].[GetOnePageData]&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;@sqlstr&nbsp;nvarchar(4000),&nbsp;--查询字符串&nbsp;&nbsp;，就是一般的查询语句，不需要top关键字&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;@currentpage&nbsp;<span style="color: #0000FF; ">int</span>,&nbsp;--第N页&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;@pagesize&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;--每页行数&nbsp;&nbsp;<br />as&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;set&nbsp;nocount&nbsp;on&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;declare&nbsp;@P1&nbsp;<span style="color: #0000FF; ">int</span>,&nbsp;--P1是游标的id&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;@rowcount&nbsp;<span style="color: #0000FF; ">int</span>--&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_cursoropen&nbsp;@P1&nbsp;output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount&nbsp;output&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;--定义与游标和游标选项相关联的&nbsp;SQL&nbsp;语句，然后填充游标。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;--选择总页数，总行数，当前页&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;ceiling(1.0*@rowcount/@pagesize)&nbsp;as&nbsp;TotalPages,@rowcount&nbsp;as&nbsp;TotalRows,@currentpage&nbsp;as&nbsp;CurPage&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@currentpage=(@currentpage-1)*@pagesize+1&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;--查询记录&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_cursorfetch&nbsp;@P1,16,@currentpage,@pagesize&nbsp;--从游标中提取一行或一个行块。&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;--返回值&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;sp_cursorclose&nbsp;@P1--关闭并释放游标&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;nocount&nbsp;off&nbsp;&nbsp;<br />go&nbsp;&nbsp;<br /><br /><br />3&nbsp;通过新函数ROW_NUMBER()进行分页查询<br /><br />[sql]&nbsp;view&nbsp;plaincopy<br /><span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;&nbsp;<br />适用于sql2005，据调查此方法限制最少，性能最佳&nbsp;&nbsp;<br />返回两个表，第一个表包含总行数，第二个表是查询到的记录&nbsp;&nbsp;<br />--分页查询的原理：&nbsp;&nbsp;<br />--1.先将预分页内容按照排序条件加上自增列导入到临时表中（或表变量）&nbsp;&nbsp;<br />--2.针对临时表操作，找到相应的N页对应的自增列编码范围&nbsp;&nbsp;<br />--3.根据第N页对应的自增列编码范围，查找第N页内容&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />--需要注意的是：&nbsp;&nbsp;<br />--第一是添加自增列，确定行号&nbsp;&nbsp;<br />--第二缩减中间处理过程的操作数据量&nbsp;&nbsp;<br />&nbsp;&nbsp;<br /></span><span style="color: #008000; ">*/</span>&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />create&nbsp;&nbsp;proc&nbsp;[dbo].[GetOnePageData]--<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>(&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@page&nbsp;<span style="color: #0000FF; ">int</span>,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@pagesize&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;&nbsp;<br />)&nbsp;&nbsp;<br />as&nbsp;&nbsp;<br />begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;top&nbsp;&nbsp;(@pagesize*@page)&nbsp;&nbsp;ROW_NUMBER()&nbsp;--可以减少处理的数据，加快速度&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OVER(ORDER&nbsp;BY&nbsp;NodeID)&nbsp;as&nbsp;rowNum,--按什么字段分页的字段，不需要唯一性&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NodeID,NodeName,ControlIP&nbsp;--查询字段&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;into&nbsp;#temp&nbsp;--插入临时表&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;TableName&nbsp;&nbsp;&nbsp;--&nbsp;&nbsp;查询表名称&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;NodeID&gt;100&nbsp;--查询条件&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;count(*)&nbsp;from&nbsp;#temp--总记录条数&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;*&nbsp;from&nbsp;#temp&nbsp;where&nbsp;rowNum&gt;@pagesize*(@page-1)&nbsp;and&nbsp;rowNum&lt;=@pagesize*@page--&nbsp;&nbsp;<br />end&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;综述，如果需要通用的存储过程，可以把第一或者第三种分页方法进行改写，在数据库拼字符串，但性能会差好多。这或许就是通用和性能之间的矛盾吧。</div><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/yxhxj2006/aggbug/386542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-29 21:31 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL分页语句 </title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386539.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Wed, 29 Aug 2012 10:36:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386539.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/386539.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386539.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/386539.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/386539.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">有关分页 SQL 的资料很多，有的使用存储过程，有的使用游标。本人不喜欢使用游标，我觉得它耗资、效率低；使用存储过程是个不错的选择，因为存储过程是经过预编译的，执行效率高，也更灵活。先看看单条 SQL 语句的分页 SQL 吧。<br /><br />方法1：<br />适用于 SQL Server 2000/2005<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TOP</span><span style="color: #000000">&nbsp;页大小&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000"><br /></span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;table1<br /></span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;id&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">IN</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TOP</span><span style="color: #000000">&nbsp;页大小</span><span style="color: red; ">*</span><span style="color: #000000">(<span style="color: #000000">页</span>数排序</span><span style="color: #808080">-</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) id&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;table1&nbsp;</span><span style="color: #0000ff">ORDER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;id<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /></span><span style="color: #0000ff">ORDER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;id</span></div><span style="color: red; ">原理：</span><span style="color: red; ">其中id最好是主键或者索引，这样查询速度比较快）。由页码数，通过s</span><span style="font-size: 13px; color: red; ">ELECT</span>&nbsp;<span style="font-size: 13px; color: red; ">TOP</span><span style="font-size: 13px; color: red; ">&nbsp;页大小</span><span style="font-size: 13px; color: red; ">*</span><span style="font-size: 13px; color: red; ">(页数排序</span><span style="font-size: 13px; color: red; ">-</span><span style="font-size: 13px; color: red; font-weight: bold; ">1</span><span style="font-size: 13px; color: red; ">) id&nbsp;</span><span style="font-size: 13px; color: red; ">FROM</span><span style="font-size: 13px; color: red; ">&nbsp;tablename&nbsp;</span><span style="font-size: 13px; color: red; ">ORDER</span>&nbsp;<span style="font-size: 13px; color: red; ">BY</span><span style="font-size: 13px; color: red; ">&nbsp;id</span><span style="color: red; ">&nbsp;获取最前面的那几行（top），然后通过id not in 表示要查询的那一页是最后的那一部分，而通过top +页大小表示去最后那一部分记录的最前面的那几天记录（每页记录数）。</span><br /><span style="color: red; ">为什么直接取最后那一部分的，因为sql只有去前面几条记录top，而没有去最后几条记录的关键字。</span><br /><font face="Verdana">方法2：<br />适用于 SQL Server 2000/2005<br /></font>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->--顺序写法：<br />&nbsp;SELECT&nbsp;TOP&nbsp;页大小&nbsp;*<br />&nbsp;FROM&nbsp;table1<br />&nbsp;WHERE&nbsp;id&nbsp;&gt;=<br />&nbsp;(<br />&nbsp;SELECT&nbsp;ISNULL(MAX(id),0)&nbsp;<br />&nbsp;FROM&nbsp;<br />&nbsp;(<br />&nbsp;SELECT&nbsp;TOP&nbsp;页大小*(页数-1)+1&nbsp;id&nbsp;FROM&nbsp;table1&nbsp;ORDER&nbsp;BY&nbsp;id<br />&nbsp;)&nbsp;A<br />&nbsp;)<br />&nbsp;ORDER&nbsp;BY&nbsp;id<br />&nbsp;<br />&nbsp;--降序写法：<br />&nbsp;SELECT&nbsp;TOP&nbsp;页大小&nbsp;*<br />&nbsp;FROM&nbsp;table1<br />&nbsp;WHERE&nbsp;id&nbsp;&lt;=<br />&nbsp;(<br />&nbsp;SELECT&nbsp;ISNULL(MIN(id),0)&nbsp;<br />&nbsp;FROM&nbsp;<br />&nbsp;(<br />&nbsp;SELECT&nbsp;TOP&nbsp;页大小*(页数-1)+1&nbsp;id&nbsp;FROM&nbsp;table1&nbsp;ORDER&nbsp;BY&nbsp;id&nbsp;Desc<br />&nbsp;)&nbsp;A<br />&nbsp;)<br />&nbsp;ORDER&nbsp;BY&nbsp;id&nbsp;Desc</div></div><br /><font face="Verdana">方法3：<br />适用于 SQL Server 2005</font><br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TOP</span><span style="color: #000000">&nbsp;页大小&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;<br /></span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;ROW_NUMBER()&nbsp;</span><span style="color: #0000ff">OVER</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">ORDER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;id)&nbsp;</span><span style="color: #0000ff">AS</span><span style="color: #000000">&nbsp;RowNumber,</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;table1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;A<br /></span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;RowNumber&nbsp;</span><span style="color: #808080">&gt;</span><span style="color: #000000">&nbsp;页大小</span><span style="color: #808080">*</span><span style="color: #000000">(页数</span><span style="color: #808080">-</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">)</span></div>
<p><br />说明，页大小：每页的行数；页数：第几页。使用时，请把&#8220;页大小&#8221;和&#8220;页大小*(页数-1)&#8221;替换成数字。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>其它的方案：如果没有主键，可以用临时表，也可以用方案三做，但是效率会低。<br />建议优化的时候，加上主键和索引，查询效率会提高。</p>
<p>通过SQL 查询分析器，显示比较：我的结论是:<br />分页方案二：(利用ID大于多少和SELECT TOP分页）效率最高，需要拼接SQL语句<br />分页方案一：(利用Not In和SELECT TOP分页)&nbsp;&nbsp; 效率次之，需要拼接SQL语句<br />分页方案三：(利用SQL的游标存储过程分页)&nbsp;&nbsp;&nbsp; 效率最差，但是最为通用</p></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/386539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-29 18:36 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/29/386539.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLSERVERl时间函数</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/27/386359.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Mon, 27 Aug 2012 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/27/386359.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/386359.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/27/386359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/386359.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/386359.html</trackback:ping><description><![CDATA[<h2><a id="cb_post_title_url" href="http://www.cnblogs.com/yuzhixue/articles/533632.html" style="color: #009933; ">Sql时间函数</a></h2><div id="cnblogs_post_body" style="word-break: normal !important; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; "><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 1164.2332763671875px; word-break: break-all; background-color: #eeeeee; "><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />一、sql&nbsp;server日期时间函数<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />Sql&nbsp;Server中的日期与时间函数&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="font-weight: bold; color: #800000; ">1</span>.&nbsp;&nbsp;当前系统日期、时间&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">getdate</span>()&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="font-weight: bold; color: #800000; ">2</span>.&nbsp;<span style="color: #ff00ff; ">dateadd</span>&nbsp;&nbsp;在向指定日期加上一段时间的基础上，返回新的&nbsp;<span style="font-weight: bold; ">datetime</span>&nbsp;值<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;&nbsp;例如：向日期加上2天&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">dateadd</span>(<span style="color: #ff00ff; ">day</span>,<span style="font-weight: bold; color: #800000; ">2</span>,<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-10-15</span><span style="color: #ff0000; ">'</span>)&nbsp;&nbsp;<span style="color: #008080; ">--</span><span style="color: #008080; ">返回：2004-10-17&nbsp;00:00:00.000&nbsp;</span><span style="color: #008080; "><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /></span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="font-weight: bold; color: #800000; ">3</span>.&nbsp;<span style="color: #ff00ff; ">datediff</span>&nbsp;返回跨两个指定日期的日期和时间边界数。<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">datediff</span>(<span style="color: #ff00ff; ">day</span>,<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-09-01</span><span style="color: #ff0000; ">'</span>,<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-09-18</span><span style="color: #ff0000; ">'</span>)&nbsp;&nbsp;&nbsp;<span style="color: #008080; ">--</span><span style="color: #008080; ">返回：17</span><span style="color: #008080; "><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /></span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="font-weight: bold; color: #800000; ">4</span>.&nbsp;<span style="color: #ff00ff; ">datepart</span>&nbsp;返回代表指定日期的指定日期部分的整数。<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">DATEPART</span>(<span style="color: #ff00ff; ">month</span>,&nbsp;<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-10-15</span><span style="color: #ff0000; ">'</span>)&nbsp;&nbsp;<span style="color: #008080; ">--</span><span style="color: #008080; ">返回&nbsp;10</span><span style="color: #008080; "><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /></span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="font-weight: bold; color: #800000; ">5</span>.&nbsp;<span style="color: #ff00ff; ">datename</span>&nbsp;返回代表指定日期的指定日期部分的字符串<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">datename</span>(weekday,&nbsp;<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-10-15</span><span style="color: #ff0000; ">'</span>)&nbsp;&nbsp;<span style="color: #008080; ">--</span><span style="color: #008080; ">返回：星期五</span><span style="color: #008080; "><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /></span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="font-weight: bold; color: #800000; ">6</span>.&nbsp;<span style="color: #ff00ff; ">day</span>(),&nbsp;<span style="color: #ff00ff; ">month</span>(),<span style="color: #ff00ff; ">year</span>()&nbsp;<span style="color: #008080; ">--</span><span style="color: #008080; ">可以与datepart对照一下</span><span style="color: #008080; "><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /></span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="color: #0000ff; ">select</span>&nbsp;当前日期<span style="color: #808080; ">=</span><span style="color: #ff00ff; ">convert</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">10</span>),<span style="color: #ff00ff; ">getdate</span>(),<span style="font-weight: bold; color: #800000; ">120</span>)&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />,当前时间<span style="color: #808080; ">=</span><span style="color: #ff00ff; ">convert</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">8</span>),<span style="color: #ff00ff; ">getdate</span>(),<span style="font-weight: bold; color: #800000; ">114</span>)&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">datename</span>(dw,<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-10-15</span><span style="color: #ff0000; ">'</span>)&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><span style="color: #0000ff; ">select</span>&nbsp;本年第多少周<span style="color: #808080; ">=</span><span style="color: #ff00ff; ">datename</span>(week,<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-10-15</span><span style="color: #ff0000; ">'</span>)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,今天是周几<span style="color: #808080; ">=</span><span style="color: #ff00ff; ">datename</span>(weekday,<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">2004-10-15</span><span style="color: #ff0000; ">'</span>)<br /><br /><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 1140.933349609375px; word-break: break-all; ">二、日期格式转换<br /><span style="color: #0000ff; ">&nbsp;&nbsp;&nbsp; select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">120</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">2004</span><span style="color: #808080; ">-</span><span style="font-weight: bold; color: #800000; ">09</span><span style="color: #808080; ">-</span><span style="font-weight: bold; color: #800000; ">12</span>&nbsp;<span style="font-weight: bold; color: #800000; ">11</span>:<span style="font-weight: bold; color: #800000; ">06</span>:<span style="font-weight: bold; color: #800000; ">08</span>&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">replace</span>(<span style="color: #ff00ff; ">replace</span>(<span style="color: #ff00ff; ">replace</span>(<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">120</span>&nbsp;),<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">-</span><span style="color: #ff0000; ">'</span>,<span style="color: #ff0000; ">''</span>),<span style="color: #ff0000; ">'</span>&nbsp;<span style="color: #ff0000; ">'</span>,<span style="color: #ff0000; ">''</span>),<span style="color: #ff0000; ">'</span><span style="color: #ff0000; ">:</span><span style="color: #ff0000; ">'</span>,<span style="color: #ff0000; ">''</span>)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">20040912110608</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">111</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">2004</span><span style="color: #808080; ">/</span><span style="font-weight: bold; color: #800000; ">09</span><span style="color: #808080; ">/</span><span style="font-weight: bold; color: #800000; ">12</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">112</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">20040912</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">102</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">2004.09</span>.<span style="font-weight: bold; color: #800000; ">12</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;其它我不常用的日期格式转换方法:<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">101</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">09</span><span style="color: #808080; ">/</span><span style="font-weight: bold; color: #800000; ">12</span><span style="color: #808080; ">/</span><span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">103</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">12</span><span style="color: #808080; ">/</span><span style="font-weight: bold; color: #800000; ">09</span><span style="color: #808080; ">/</span><span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">104</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">12.09</span>.<span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">105</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">12</span><span style="color: #808080; ">-</span><span style="font-weight: bold; color: #800000; ">09</span><span style="color: #808080; ">-</span><span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">106</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">12</span>&nbsp;<span style="font-weight: bold; color: #800000; ">09</span>&nbsp;<span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">107</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">09</span>&nbsp;<span style="font-weight: bold; color: #800000; ">12</span>,&nbsp;<span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">108</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">11</span>:<span style="font-weight: bold; color: #800000; ">06</span>:<span style="font-weight: bold; color: #800000; ">08</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">109</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">09</span>&nbsp;<span style="font-weight: bold; color: #800000; ">12</span>&nbsp;<span style="font-weight: bold; color: #800000; ">2004</span>&nbsp;<span style="font-weight: bold; color: #800000; ">1</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">110</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">09</span><span style="color: #808080; ">-</span><span style="font-weight: bold; color: #800000; ">12</span><span style="color: #808080; ">-</span><span style="font-weight: bold; color: #800000; ">2004</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">113</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">12</span>&nbsp;<span style="font-weight: bold; color: #800000; ">09</span>&nbsp;<span style="font-weight: bold; color: #800000; ">2004</span>&nbsp;<span style="font-weight: bold; color: #800000; ">1</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="color: #0000ff; ">select</span>&nbsp;<span style="color: #ff00ff; ">CONVERT</span>(<span style="font-weight: bold; ">varchar</span>(<span style="font-weight: bold; color: #800000; ">12</span>)&nbsp;,&nbsp;<span style="color: #ff00ff; ">getdate</span>(),&nbsp;<span style="font-weight: bold; color: #800000; ">114</span>&nbsp;)<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" />&nbsp;<span style="font-weight: bold; color: #800000; ">11</span>:<span style="font-weight: bold; color: #800000; ">06</span>:<span style="font-weight: bold; color: #800000; ">08.177</span><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px; "  alt="" /></div></div>举例：<br />1.GetDate() 用于sql server :select&nbsp;GetDate()<br /><br />2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒<br />DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天<br /><br />3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1，周六为7)<br />DatePart('d','2005-7-25 22:56:32')返回值为 25即25号<br />DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天<br />DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年<br />附图<br /><table id="Table1" height="197" cellspacing="1" cellpadding="3" width="376" bgcolor="#666666" border="0" style="margin: 0px auto; border-style: solid; border-color: #c0c0c0; border-collapse: collapse; "><tbody><tr><td bgcolor="#cccccc" height="30" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; "><strong>函数</strong></td><td bgcolor="#cccccc" height="30" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; "><strong>参数/功能</strong></td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">GetDate( )</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">返回系统目前的日期与时间</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">DateDiff (interval,date1,date2)</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">以interval 指定的方式，返回date2 与date1两个日期之间的差值 date2-date1</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">DateAdd (interval,number,date)</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">以interval指定的方式，加上number之后的日期</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">DatePart (interval,date)</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">返回日期date中，interval指定部分所对应的整数值</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">DateName (interval,date)</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">返回日期date中，interval指定部分所对应的字符串名称</td></tr></tbody></table><p style="line-height: 1.5; ">参数 interval的设定值如下：</p><p style="line-height: 1.5; "><table id="Table2" cellspacing="1" cellpadding="3" width="492" bgcolor="#999999" border="0" style="margin: 0px auto; border-style: solid; border-color: #c0c0c0; border-collapse: collapse; "><tbody><tr><td width="77" bgcolor="#cccccc" height="30" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; "><strong>值</strong></td><td width="144" bgcolor="#cccccc" height="30" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; "><strong>缩 写（Sql Server）</strong></td><td width="118" bgcolor="#cccccc" height="30" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; "><strong>Access 和 ASP</strong></td><td width="124" bgcolor="#cccccc" height="30" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; "><strong>说明</strong></td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Year</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Yy</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">yyyy</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">年 1753 ~ 9999</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Quarter</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Qq</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">q&nbsp;</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">季 1 ~ 4</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Month</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Mm</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">m&nbsp;</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">月1 ~ 12</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Day of year</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Dy</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">y</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">一年的日数,一年中的第几日 1-366</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Day</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Dd</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">d&nbsp;</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">日，1-31</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Weekday</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Dw</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">w</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">一周的日数，一周中的第几日 1-7</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Week</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Wk</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">ww</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">周，一年中的第几周 0 ~ 51</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Hour</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Hh</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">h&nbsp;</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">时0 ~ 23</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Minute</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Mi</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">n&nbsp;</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">分钟0 ~ 59</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Second</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Ss</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">s</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">秒 0 ~ 59</td></tr><tr><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Millisecond</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">Ms</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">-</td><td bgcolor="#ffffff" style="border-style: solid; border-color: #c0c0c0; border-collapse: collapse; padding: 3px; word-break: normal !important; ">毫秒 0 ~ 999</td></tr></tbody></table></p></div><img src ="http://www.blogjava.net/yxhxj2006/aggbug/386359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-27 14:59 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/27/386359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>全面对比T-SQL与PL/SQL</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/16/385565.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Thu, 16 Aug 2012 00:46:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/16/385565.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/385565.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/16/385565.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/385565.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/385565.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 以前一直用mssql 做开发，最近的项目都Oracle, &nbsp;1)数据类型&nbsp;TSQLPL/SQL&nbsp;numeric(p,s)numeric(p,s) or NUMBER(p,s)&nbsp;decimal(p,s)decimal(p,s) or NUMBER(p,s)...&nbsp;&nbsp;<a href='http://www.blogjava.net/yxhxj2006/archive/2012/08/16/385565.html'>阅读全文</a><img src ="http://www.blogjava.net/yxhxj2006/aggbug/385565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-16 08:46 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/16/385565.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在SqlServer中 统计用户表中数据的行数 .</title><link>http://www.blogjava.net/yxhxj2006/archive/2012/08/10/385238.html</link><dc:creator>奋斗成就男人</dc:creator><author>奋斗成就男人</author><pubDate>Fri, 10 Aug 2012 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/yxhxj2006/archive/2012/08/10/385238.html</guid><wfw:comment>http://www.blogjava.net/yxhxj2006/comments/385238.html</wfw:comment><comments>http://www.blogjava.net/yxhxj2006/archive/2012/08/10/385238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yxhxj2006/comments/commentRss/385238.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yxhxj2006/services/trackbacks/385238.html</trackback:ping><description><![CDATA[declare @tableName nvarchar(50)<br />declare @sql nvarchar(4000)<br />declare @count int<br />set @count=0<br />set @tableName=''<br />set @sql = '' 
<p>declare cur cursor for<br />select name from sysobjects <br />where xtype='U'&nbsp;&nbsp;&nbsp;&nbsp;--用户表</p>
<p>open cur</p>
<p>fetch next from cur into @tableName</p>
<p>while @@fetch_status=0<br />begin<br />&nbsp;&nbsp;&nbsp; set @sql = N'select @count=count(1) from '+@tableName<br />&nbsp;&nbsp;&nbsp; exec sp_executesql @sql,N'@count int output',@count output<br />--&nbsp;&nbsp;&nbsp; if(@count&gt;0)<br />--&nbsp;&nbsp;&nbsp; begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print '表名称：'+@tableName+' 行数：'+cast(@count as varchar)<br />--&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp; fetch next from cur into @tableName<br />end</p>
<p>close cur<br />deallocate cur</p><img src ="http://www.blogjava.net/yxhxj2006/aggbug/385238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yxhxj2006/" target="_blank">奋斗成就男人</a> 2012-08-10 16:16 <a href="http://www.blogjava.net/yxhxj2006/archive/2012/08/10/385238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>