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 )的更多相关文章

  1. 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页

    在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...

  2. row_number函数的使用

    转 row_number函数的使用 SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用. 实例如下 ...

  3. SQL Server中row_number函数的简单用法

    一.SQL Server Row_number函数简介   ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是R ...

  4. ROW_NUMBER()函数的使用

    SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用. 实例如下: .使用row_number()函 ...

  5. SQL Server数据库ROW_NUMBER()函数使用详解

    SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...

  6. Teradata 的rank() 和 row_number() 函数

    Teradata数据库中也有和oracle类似的分析函数,功能基本一样.示例如下: RANK() 函数   SELECT * FROM salestbl ORDER BY 1,2; storeid p ...

  7. T-SQL利用Row_Number函数实现分页

    SQL: CREATE PROCEDURE PagingViewTest ( @currentPageIndex INT, --页序号 @pageSize INT, --页大小 @pageCount ...

  8. 【ROW_NUMBER 函数(Transact-SQL)】

    [ROW_NUMBER 函数(Transact-SQL)]返回结果集分区内行的序列号,每个分区的第一行从 1 开始. 注释: ROW_NUMBER() OVER (PARTITION BY COL1 ...

  9. 按某个字段来分组、编号的row_number()函数

    本文参考 http://zhidao.baidu.com/link?url=8su4F16Et8Q0S3FmybwniJSI51Ms0AeVujcEXhyEaZh3u5LlOng5Xri_9zHsl7 ...

随机推荐

  1. 利用Python读取json数据并求数据平均值

    要做的事情:一共十二个月的json数据(即12个json文件),json数据的一个单元如下所示.读取这些数据,并求取各个(100多个)城市年.季度平均值. { "time_point&quo ...

  2. iOS开发——C篇&动态内存分析

    再C语言中关于内存是一个很重要的知识点,所以今天我就从c语言的内存分配开始为大家解析一下C语言再iOS开发中非常重要的一些知识. 1:malloc函数的介绍 C语言中开辟内存空间:malloc函数(堆 ...

  3. mysql 索引管理原则

    最近在学习mysql的索引优化,结合着我们网盟系统的一些业务,翻阅一些资料,整理出如下的一些想法: 1.索引建立的原则一:最左前缀匹配原则 ,非常重要的原则,mysql会一直向右匹配直到遇到范围查询( ...

  4. oracle数据泵之解决方案(用户)导入导出。

    看到网上有这样的介绍而且很多,但觉得都是大神才能一下子看的懂.自己总结下菜鸟能看懂的. 1.导出. 首先第一步: 操作系统—开始—运行输入“cmd”进入dos界面输入“sqlplus/nolog”按回 ...

  5. Jasper_table_Cloud not resolve style(s)

    resolve method : delete style="".

  6. Android 自定义回调

    刚开始接触的时候,觉得 回调 是一个很难理解的概念,之后就不停的上网查找回调的定义:(当你想要把具体的操作,让具体的人来完成,自己定义一个接口就好.使用的时候用接口,具体的人来实现你的接口,也就是实现 ...

  7. IIS not allow PUT and DELETE method

    refer : http://stackoverflow.com/questions/10906411/asp-net-web-api-put-delete-verbs-not-allowed-iis ...

  8. 关于C51的中断函数要注意的几个问题

    转载自:http://blog.21ic.com/user1/531/archives/2006/16909.html 最近在虾潭逛,发现一些小虾米对C51中断函数有些不了解,今天周末,抽空发个技术帖 ...

  9. BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换

    1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 493  Solved: 2 ...

  10. tomcat+redis实现session共享缓存

    一:linux下redis安装 1.wget http://download.redis.io/releases/redis-3.2.4.tar.gz 2.tar xzf redis-3.2.4.ta ...