易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

sql 添加删除分区

sql 添加新分区
ALTER PARTITION SCHEME SCH_Source_ID_DT_ID  
 NEXT USED sn3 
 go
 
 ALTER PARTITION FUNCTION [PF_Source_ID_DT_ID]()  
    SPLIT RANGE ('350000') 
删除分区
编辑
ALTER PARTITION FUNCTION [PF_Source_ID_DT_ID]( ......

实例名 (SQL Server Express)

使用 Microsoft SQL Server 安装向导的"实例名"页,可指定创建默认实例还是创建 SQL Server Express 命名实例。除非您选择默认实例,否则 SQL Server Express 将始终安装命名实例 (SQLExpress)。此行为与 SQL Server 2005 不同,后者在未选择命名实例的情况下,将始终安装默认实例。
 选项
选项
说明
默认实例 ......

SQL插入语句(INSERT INTO )

INSERT INTO
 tableName ( columnName1, columnName2, columnName3, columnName4)
VALUES      (  '45', '西藏办',  TO_Date( '2010-03-10 12:00:00', 'YYYY-MM-DD HH24:MI:SS'), NULL,);
commit; ......

SQL跨用户取进行数据库操作(这里用到了left join)

select ks.login_name,ks.exam_name,ks.start_time,ks.end_time,cj.score
from (
     select u.user_id,u.login_name,e.* from  cphrms.EXAM_USER eu, cphrms.users u, cphrms.exam_info e
     where eu.user_id = u.user_id and eu.exam_id = e.exam_id
) ks
left ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号