易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL高级应用 Garin Zhang

追加:row_number, rank, dese_rank, ntile
1. row_number: 为查询出来的每一行记录生成一个序号。
SELECT row_number() OVER(ORDER BY field) AS row_n
from tablename;
分页查询:
with t_towtable
as (select row_number over(order by field1) as row_number from tb)
select * from t_rowtable where row_number > 1 and row_number > 4 order by field1;
ROW_NUMBER() OVER([<partition_by_caluse>] <order_by_clause>);
2. rank: 返回结果集的分区内每行的排名:
RANK() OVER([<partition_by_caluse_按照某个字段分区>]<order_by_clause_排序>);
Examples:
WITH CustomerSum AS
(SELECT CustomerID, SUM(totalDue) AS total
  from sales GROUP BY CustomerID)
SELECT * RANK() OVER (ORDER BY total DESC) AS RANK
from CustomerSum
3. dense_rank: 顺序排序(生成的序号是连续的)。
4. ntile:取前多少个名次的排名的行。
SELECT SalesID, NTILE(1000) OVER(ORDER BY CustomerID) AS NTile
from Sales
桶数的计算:
if(记录数%桶数 == 0)
      每桶记录数都为记数总数/桶数
else
      recordCount1 = total/tongNum + 1;
      int n = 1;
      m = recordCont1*n;
while((total - m) % (tongNum - n)) != 0)
{
      n++;
      m = recordCount1 * n;
}
recordCount2 = (total - m) / (tongNum - n);
将前n个桶记录设置为recordCount1
将n+1个到后面所有桶记为recordCount2


相关文档:

深度对比Oracle与SQL Server——第一部分

操作系统的支持 版本和发行版 实例、数据库和表空间 实例名和SID 系统数据库和系统表空间
一般的公司通常会在他们的信息系统架构中引入多种数据库平台,同时引入三到四种不同的RDBMS解决方案的中大型公司也并不少见,当然这些公司里面的DBA们通常也需要同时拥有管理多种不同平台的技能了。
只在一种平台上展开工作的数据 ......

sql条件语句

Transact-SQL 语言使用的流程控制命令与常见的程序设计语言类似主要有以下几种控制命令。
4.6.1 IF…ELSE

语法如下:
IF <条件表达式>
<命令行或程序块>
[ELSE [条件表达式]
<命令行
或程序块>]
其中<条件表达式>可以是各种表达式的组合,但表达式的值必须是逻辑值“真&rdq ......

PL/SQL导入导出表结构

导出表结构:
Tools-->Export User Objects -->选择要导出的表(包括Sequence等)-->.sql文件
导出表数据:
Tools-->Export Tables-->选择表,选择SQL Inserts-->.sql文件
执行这些.sql文件时,要使用新建Command Window来执行. ......

SQL Server示例查询

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
  select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
  fr ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号