例如表cj
名字 科目 分数
A 语文 100
A 数学 90
A 外语 99
B 语文 90
B 数学 80
B 外语 100
方法 (一)
select from cj
select 名字, max(case 科目 when '语文' then 分数 else 0 end ) 语文,
max(case 科目 when '数学' then 分数 else 0 end ) 数学,
max(case 科目 when '外语' then 分数 else 0 end ) 外语
from cj
group by 名字
方法 (二)
declare @sql varchar(800)
set @sql='select 名字'
select @sql =@sql+', max(case 科目 when '''+科目+''' then 分数 else 0 end )['+科目+']'
from (select distinct 科目 from cj ) as a
set @sql=@sql+'from cj group by 名字'
exec(@sql)
结果:
名字 语文 数学 外语
A 100 90 99
B 90 80 100
declare @maxcount int;
declare @i int;
declare @sql nvarchar(max);
select @maxcount=max(C) from (select 采购商,count() C from table1 group by 采购商) a
print @maxcount
set @i=1;
set @sql='select distinct 采购商,(select max(商品) from table1 b where b采购商=a采购商) 商品1'
while @i<@maxcount
begin
set @sql=@sql+', (select max(商品) from table1 b where b采购商=a采购商 and 商品 not in (select top '+ cast(@i as nvarchar(4))+' 商品 from table1 c where b采购商=c采购商 order by 商品 desc)) 商品' + cast(@i+1 as nvarchar(4))
set @i=@i+1
end
set @sql=@sql+' from table1 a'
exec(@sql)
恩问题是这样的问题,一般行列转换我们不在代码里面转换,而是在数据库里面转换
你的datatable数据也是来源于数据库的
我们先创建表
--我们使用Num来代替时间create table tb_time(Name varchar(10) , Num INT)
--加入测试数据
INSERT INTO tb_time values('A',2)
INSERT INTO tb_time values('A',3)
INSERT INTO tb_time values('A',4)
INSERT INTO tb_time values('B',2)
INSERT INTO tb_time values('B',5)
INSERT INTO tb_time values('C',2)
--行列转换sql语句
SELECT NAME AS 名称, MIN(num)AS 开始数值,
case count(num)
WHEN 1 THEN NULL
WHEN 0 THEN NULL
ELSE MAX(num)
END
AS 结束数值 FROM tb_time
GROUP BY NAME
--测试结果
名称 开始数值 结束数值
A 2 4
B 2 5
C 2 NULL
在你这里,把我测试的Num 这列换成时间列 就可以了
网站。
数据库管理系统。
数据库。一个DBMS通常接管多个数据库,因为网站需要,你不可能只有一个数据库。
数据库的表。
数据库的表的行和列。它们只存在于关系型数据库中。你可以把列看成是特定对象的属性,而行则代表了每个特定对象。矩阵学过吧,类比理解那个行列。数据库的行和列是密不可分的。
举个例子:ni={"name":"Xiaoming","age":100}
这里,你就是一个对象,代表一行。这一行的每一列都代表了你的一个属性,分别是name,age
1、跟是否临时表没有关系。
2、SELECT列表中的转出字段,也要加上[]
3、加上DQ字段
SELECT DQ,[42周]
,[43周]
,[44周]
,[45周]
,[46周]
,[47周]
FROM #TEMPDBF
PIVOT( SUM(TEU) FOR
周 IN ([42周], [43周], [44周], [45周], [46周],[47周])
) b
以上就是关于写sql,怎么将查询结果的行列转换呀全部的内容,包括:写sql,怎么将查询结果的行列转换呀、请教一个关于SQL行列转置的问题。、C# DataTable行转列并合并重复列。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)