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 ')";