mssql sqlserver 使用sql脚本对数据按照1,2,3 1,2,3 一批一批数据进行排序


摘要:
下文讲述使用row_number对数据按照1,2,3类别的排序方法分享,如下所示:
实验环境:sql server 2008 R2


例:
今天领导要求我们对一个数据表进行如下排序:
序号:
1
2
3
1
2
3

实现思路:
下文使用over开窗函数对数据进行群组排序,再结合order by对数据进行二次排序

   create table #maomao365([序号] int)
insert into  #maomao365([序号])
select 1 union all
select 2 union all
select 3 union all
select 1 union all
select 2 union all
select 3
Go
--测试数据结束
SELECT [序号]
FROM
(SELECT *, ROW_NUMBER() OVER (PARTITION BY [序号] ORDER BY [序号]) keyId  FROM #maomao365) t
ORDER BY t.keyId,t.[序号];

go

truncate table   #maomao365 
drop  table #maomao365 
mssql_sqlserver_排序应用_8418

mssql_sqlserver_排序应用_8418

mssql sqlserver order by 根据条件选择不同的列名进行排序的方法分享


摘要:
下文讲述sqlserver中order by 根据不同的条件生成不同的排序字段的方法分享
实验环境:sql server 2008 R2


例:
根据列中的内容不同,按照不同的字段进行排序

  select [列名A], [列名B],[列名C] from tableName 
   order by case  when 表达式1 then [列名A]   
                  when 表达式2 then [列名B]   
                  else [列名C]
                end

 ---当满足表达式1 时,采用列名A排序
 ---当满足表达式2 时,采用列名B排序
 ---否则采用列名C排序 

mssql sqlserver sql脚本自动遍历重复生成指定表记录


摘要:
今天接到老板的需求,需根据一张表中列值,自动重复表中的数据行,然后显示给用户
实验环境:sqlserver 2008 R2

例:
根据数量遍历循环表 maomao365

实现思路:
下文将使用 master..spt_values 中的流水编号,自动循环表记录,达到题目中的要求

    create table [maomao365]
(A varchar(20),B varchar(30),c varchar(30),qty int)
go

insert into [maomao365]
(A,B,C,qty)values
('A001','A002','A003',5),
('B001','B002','B003',2)
go

select a.A,a.B,a.C,b.number from [maomao365] a 
right join  master..spt_values b on  b.type='p'
 where  b.number <=a.qty  and b.number >0 

go
truncate table [maomao365]
drop     table [maomao365]
  
mssql_sqlserver_重复表记录_8413

mssql_sqlserver_重复表记录_8413