sqlserver 比较两个表的列

一、问题 给了两个各有四五十个列的表,找出他们相同的列和不同的列

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
<BR>
例子:

二、查询两个表的列,存在临时表

复制代码 代码如下:

–#a ,#b都是临时表,当前连接断开后自动删除–RANK() OVER (ORDER BY
syscolumns.name DESC) AS
是SQL2005支持的,在每行记录前加上自增序号–IDENTITY(INT,1,1)
函数必须要和into联合使用

select * from (
    select *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS
RowNumber from table_name as a
  ) as b
  where RowNumber BETWEEN 1 and 5

1、将表的列存入#a–‘destTbl’比较的表名

将会返回table表

select * into #a from (select RANK() OVER (ORDER BY syscolumns.name
DESC) AS 序号,syscolumns.name from syscolumns,sysobjects where
syscolumns.[id]=sysobjects.[id] and sysobjects.[name]=’destTbl’)
as t

其中有一列名字为 RowNumber, 编号从1开始

select * from #a

示例:
xlh row_num
1700 1
1500 2
1085 3
710 4

1 姓名2 课程3 id4 cno

有了row_num 编号之后是不是很方便分页呀! 哈哈

2、将表的列存入#永利网址,b–‘student’比较的表名

只要使用
where RowNumber between
就可以实现分页了 呵呵(从此分页就是这么简单)

select 序号= IDENTITY(INT,1,1),syscolumns.name into #b from
syscolumns,sysobjects where syscolumns.[id]=sysobjects.[id] and
sysobjects.[name]=’student’

例子:

select * from #b

复制代码 代码如下: