SQL Server 查询技术与可编程对象全解析
1. 子查询与排名函数
在 SQL 查询中,子查询是一种强大的工具,它允许我们将一个查询嵌入到另一个查询中。子查询主要分为非关联子查询和关联子查询:
- 非关联子查询 :独立于外部查询,用于检索标量值或值列表,为外部查询提供更动态的代码支持。
- 关联子查询 :嵌入在外部查询中,但会引用外部查询中的值。
排名函数则用于提供简单的分析功能,如统计排序或分段。SQL Server 2008 提供了四种排名函数:
|函数名称|功能描述|
| ---- | ---- |
|ROW_NUMBER|根据用户指定的排序顺序,为结果集中的行分配从 1 到 n 的编号。它不考虑结果集中的平局情况,若排序列中有相同值,重复查询可能产生不同的行编号。|
|RANK|若结果集中没有平局,其结果与 ROW_NUMBER 相同;若有平局,为每个平局的行分配相同的值,然后跳过相应数量的值,导致序列中出现间隙。|
|DENSE_RANK|为每个重复值分配相同的值,但序列中不会出现间隙。|
|NTILE|用于将结果集划分为大致相等的组。|
以下是这些函数的使用示例:
-- ROW_NUMBER 示例
SELECT p.FirstName, p.LastName, ROW_NUMBER() OVER(ORDER BY s.SalesYTD DESC) AS 'RowNumber',
s.SalesYTD, a.PostalCod
订阅专栏 解锁全文
1123



被折叠的 条评论
为什么被折叠?



