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. IO定时器

    IoInitializeTimer 初始化定时器 IoStartTime 开启定时器 IoStopTimer 停止定时器 回调函数 VOID IoTimer( __in struct DEVICE_O ...

  2. 专门讲讲这个MYSQL授权当中的with grant option的作用

    对象的owner将权限赋予某个用户(如:testuser1) grant select ,update on bd_corp to testuser1 [with grant option ]1.如果 ...

  3. Sum square difference

    简单: e sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square o ...

  4. Mediator pattern(c++ 实现)

    概述: 假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片.但是我们不能把所有的功能罗列到一个ta ...

  5. vbox端口转发

    端口转发:setting->network->adapter:attached to NAT.port forwarding rules->name    protocol     ...

  6. 【李婶小教程】(SE_lab3)

    额,今天说一下这个SE_lab3那几个东西都是怎么装的. 啊--其实技术含量貌似不是很高的. 1.先说最简单的一个叫做:Findbugs 点这个Eclipse Marketplace,这是一个神奇的东 ...

  7. Android新浪微博客户端(一)——主框架搭建

    原文出自:方杰| http://fangjie.info/?p=62 转载请注明出处 提前声明的是,我是按照Ivan的这套教程学下来的. 首先,对于任何应用我们都需要建立一套消息处理机制,就是当用户在 ...

  8. PCanywhere/teamviewer/RDP/ultraVNC/tigerVNC/realVNC/Xmanager

    PCanywhere/teamviewer/RDP/ultraVNC/tigerVNC/realVNC/Xmanager 1, 通常应用场景一般CentOS/RHEL等linux系统不配置安装Desk ...

  9. HDFS文件系统的操作

    package com.bank.utils; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;impor ...

  10. jquery $.each()用法

    今天看到一个新的each玩法即each作为jquery的函数(平时用的大概都是用的each方法)使用: $.each([ 52, 97 ], function( index, value ) { al ...