关于ROW_NUMBER函数的使用(The use of ROW_NUMBER function )
1、用于删除重复记录(The use of to delete the common record)
例子:(Example)
#1初始化数据(Initialize the data)
CREATE TABLE #tmp1 ( id int, name nvarchar(20), age int );
INSERT INTO #tmp1 VALUES(1,'CangoWu',25)
INSERT INTO #tmp1 VALUES(2,'CangoWu',25)
INSERT INTO #tmp1 VALUES(3,'CangoWu',25)
INSERT INTO #tmp1 VALUES(4,'Ajay',29)
INSERT INTO #tmp1 VALUES(5,'Ajay',29)
INSERT INTO #tmp1 VALUES(6,'Ajay',29)
#2操作SQL(T-SQL)
--操作前(Before the operation)
SELECT * FROM #tmp1
id name age
1 CangoWu 25
2 CangoWu 25
3 CangoWu 25
4 Ajay 29
5 Ajay 29
6 Ajay 29
--操作后(After the operation)
SELECT name,age FROM
(
SELECT *,ROW_NUMBER() OVER(PARTITION BY name ORDER BY id) row FROM #tmp1
)tmp
WHERE row = 1
name age
Ajay 29
CangoWu 25
2、记录相同字段不重复显示(The record fields repeat same display)
例子:(Example)
#1初始化数据(Initialize the data)
CREATE TABLE #tmp2 ( id int, name nvarchar(20), age int, month int, salary int );
INSERT INTO #tmp2 VALUES(1,'CangoWu',25,1,2500)
INSERT INTO #tmp2 VALUES(2,'CangoWu',25,2,2500)
INSERT INTO #tmp2 VALUES(3,'CangoWu',25,3,2500)
INSERT INTO #tmp2 VALUES(4,'CangoWu',25,4,2500)
INSERT INTO #tmp2 VALUES(5,'CangoWu',25,5,2500)
INSERT INTO #tmp2 VALUES(6,'CangoWu',25,6,2500)
INSERT INTO #tmp2 VALUES(11,'Preston',35,1,8000)
INSERT INTO #tmp2 VALUES(12,'Preston',35,2,8000)
INSERT INTO #tmp2 VALUES(13,'Preston',35,3,8000)
INSERT INTO #tmp2 VALUES(14,'Preston',35,4,8000)
INSERT INTO #tmp2 VALUES(15,'Preston',35,5,8000)
INSERT INTO #tmp2 VALUES(16,'Preston',35,6,8000)
INSERT INTO #tmp2 VALUES(21,'Ajay',29,1,5000)
INSERT INTO #tmp2 VALUES(22,'Ajay',29,2,5000)
INSERT INTO #tmp2 VALUES(23,'Ajay',29,3,5000)
INSERT INTO #tmp2 VALUES(24,'Ajay',29,4,5000)
INSERT INTO #tmp2 VALUES(25,'Ajay',29,5,5000)
INSERT INTO #tmp2 VALUES(26,'Ajay',29,6,5000)
#2操作SQL(T-SQL)
SELECT
name = (CASE WHEN row = 1 THEN name ELSE '' END)
,age = (CASE WHEN row = 1 THEN age ELSE NULL END)
,month
,salary
FROM
(
SELECT *,ROW_NUMBER() OVER(PARTITION BY name ORDER BY id) row FROM #tmp2
)tmp
name age month salary
Ajay 29 1 5000
2 5000
3 5000
4 5000
5 5000
6 5000
CangoWu 25 1 2500
2 2500
3 2500
4 2500
5 2500
6 2500
Preston 35 1 8000
2 8000
3 8000
4 8000
5 8000
6 8000
关于ROW_NUMBER函数的使用(The use of ROW_NUMBER function )的更多相关文章
- 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页
在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...
- row_number函数的使用
转 row_number函数的使用 SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用. 实例如下 ...
- SQL Server中row_number函数的简单用法
一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是R ...
- ROW_NUMBER()函数的使用
SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用. 实例如下: .使用row_number()函 ...
- SQL Server数据库ROW_NUMBER()函数使用详解
SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...
- Teradata 的rank() 和 row_number() 函数
Teradata数据库中也有和oracle类似的分析函数,功能基本一样.示例如下: RANK() 函数 SELECT * FROM salestbl ORDER BY 1,2; storeid p ...
- T-SQL利用Row_Number函数实现分页
SQL: CREATE PROCEDURE PagingViewTest ( @currentPageIndex INT, --页序号 @pageSize INT, --页大小 @pageCount ...
- 【ROW_NUMBER 函数(Transact-SQL)】
[ROW_NUMBER 函数(Transact-SQL)]返回结果集分区内行的序列号,每个分区的第一行从 1 开始. 注释: ROW_NUMBER() OVER (PARTITION BY COL1 ...
- 按某个字段来分组、编号的row_number()函数
本文参考 http://zhidao.baidu.com/link?url=8su4F16Et8Q0S3FmybwniJSI51Ms0AeVujcEXhyEaZh3u5LlOng5Xri_9zHsl7 ...
随机推荐
- C++通过OCCI操作Oracle数据库详解
1.安装OCCI 如果oracle数据库默认没有安装OCCI,可以自己从官网上下载与自己数据库版本一致的API,其中包含四个软件包: oracle-instantclient-sqlplus-10.2 ...
- Python自动化运维之5、内置函数
python3.x内置函数 官网详解 一些例子:后期慢慢接触到再补充 # help() 详细查看某个类有那些方法或者方法的具体使用 >>> help(str) >>> ...
- 《python基础教程》笔记之 列表
list函数 list函数将其他类型的序列转换为列表,如 >>> list("hello world")['h', 'e', 'l', 'l', 'o', ' ' ...
- CallableStatement执行存储过程
/** * 使用CablleStatement调用存储过程 * @author APPle * */ public class Demo1 { /** * 调用带有输入参数的存储过程 * CALL p ...
- mysql 索引管理原则
最近在学习mysql的索引优化,结合着我们网盟系统的一些业务,翻阅一些资料,整理出如下的一些想法: 1.索引建立的原则一:最左前缀匹配原则 ,非常重要的原则,mysql会一直向右匹配直到遇到范围查询( ...
- DES加解密实现方式
private static readonly byte[] _keys = { 0x22, 0x84, 0x56, 0x98, 0x90, 0xAB, 0xpD, 0xEF }; private s ...
- hdu 2992 Hotel booking
http://acm.hdu.edu.cn/showproblem.php?pid=2992 #include <cstdio> #include <cstring> #inc ...
- assets文件夹资源的访问
访问assets文件夹中的文件,分为以下几个步骤:1.在Activity里面调用getAssets(),获取AssetManager引用2.调用AssetManager.open(String fil ...
- 5分钟教你学会JavaScript正则表达式
正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模 ...
- 【KMP】Period
KMP算法 Next[]函数深入理解,Next[]当前字符前匹配字符数,串长n-Next[i]=串内循环子串的长度p. 本题求子循环串内循环节数. Problem Description For ea ...