How to get column wise data in SQL Server? -


how column wise data in sql server?

format:

name    date ----    ----- xxx     10/15/2015 xxx     12/15/2015 xxx     15/15/2015 yyy     20/15/2015 yyy     25/15/2015 

desired output:

name   date         date         date -------------------------------------------- xxx    10/15/2015   12/15/2015   15/15/2015 yyy    20/15/2015   25/15/2015 

you can use code example pivot data:

on mysql:

select data.name,      if(data.row_number=1,date,null) date1,     if(data.row_number=2,date,null) date2,     if(data.row_number=3,date,null) date3,     if(data.row_number=4,date,null) date4,     if(data.row_number=5,date,null) date5 (     select @row_number:=@row_number+1 row_number, name, date      yourtable, (select @row_number:=0) t     order date      ) data group data.name; 

on sql server:

-- generate demo data create table #yourtable(name nvarchar(20), date date) insert #yourtable(name,date) values(n'xxx',getdate()), (n'xxx', dateadd(day,-1,getdate())), (n'yyy',getdate()), (n'yyy', dateadd(day,1,getdate()))  -- part select pvt.* (     select row_number() over(partition name order date) rn, name, date     #yourtable ) data pivot(     min(date)     rn in([1],[2],[3],[4],[5],[6]) ) pvt  -- cleanup drop table #yourtable 

this dynamic pivot adapt if date list grow:

-- generate demo data create table #yourtable(name nvarchar(20), date date) insert #yourtable(name,date) values(n'xxx',getdate()), (n'xxx',dateadd(day,1,getdate())), (n'xxx', dateadd(day,-1,getdate())), (n'yyy',getdate()), (n'yyy', dateadd(day,1,getdate()))  declare @sql nvarchar(max), @columnlist nvarchar(max)  select @columnlist =          coalesce(@columnlist + n',['+convert(nvarchar(max),row_number() over(order date))+']',              n'['+convert(nvarchar(max),row_number() over(order date))+']'         ) #yourtable name = (     select top (1) name     #yourtable     group name     order count(*) desc ) select @columnlist  -- part set @sql = n' select pvt.* (     select row_number() over(partition name order date) rn, name, date     #yourtable ) data pivot(     min(date)     rn in('+@columnlist+') ) pvt' exec(@sql)  -- cleanup drop table #yourtable 

Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -