首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL数据库表排版有关问题请问

2013-06-19 
SQL数据库表排版问题请教这是我数据库里面的数据我想显示成我的语句是这样的declare @s nvarchar(4000)Sel

SQL数据库表排版问题请教
SQL数据库表排版有关问题请问

这是我数据库里面的数据  我想显示成
SQL数据库表排版有关问题请问

我的语句是这样的


declare @s nvarchar(4000)  
Select     @s=isnull(@s+',','')+quotename([DutyDate]) 
from DutyInfo group by[DutyDate]  
exec('select * from DutyInfo pivot (max([DutyName]) for [DutyDate] in('+@s+'))b') 


怎样能变成第一列是由星期一到星期日的顺序呢?

还有如果我要按照条件来显示数据库里面的数据  在哪里添加条件? 数据库 SQL 行业数据 select
[解决办法]
周末少人回复也正常,你这个结果是因为一二三四五六日这些中文字的排序不是按照数字的大小来排,如果仅仅只有7天,那就order by case when dutyweek='星期一' then 1 when dutyweek='星期二' then 2 .....后面自己填完 
[解决办法]

declare @s nvarchar(4000)  
Select     @s=isnull(@s+',','')+quotename([DutyDate]) 
from DutyInfo group by[DutyDate]  
exec('select * from DutyInfo pivot (max([DutyName]) for [DutyDate] in('+@s+'))b
order by case 
when dutyweek=''星期一'' then 1 
when dutyweek=''星期二'' then 2 
when dutyweek=''星期三'' then 3 
when dutyweek=''星期四'' then 4 
when dutyweek=''星期五'' then 5 
when dutyweek=''星期六'' then 6 
when dutyweek=''星期日'' then 7 END ') 


C#里面是

string str = "declare @s nvarchar(4000)  Select     @s=isnull(@s+',','')+quotename([DutyDate]) from DutyInfo where DutyDate between'" + DateTime.Now.ToString("yyyyMMdd") + "'and'" + dt.ToString("yyyyMMdd") + "'group by [DutyDate]  exec('select * from DutyInfo)a pivot (max([DutyName]) for [DutyDate] in('+@s+'))b order by case when Dutyweek=''星期一'' then 1 when Dutyweek=''星期二'' then 2 when Dutyweek=''星期三'' then 3 when Dutyweek=''星期四'' then 4 when Dutyweek=''星期五'' then 5 when Dutyweek=''星期六'' then 6 when Dutyweek=''星期日'' then 7 END ')";

热点排行