sqlserver行转列

本文介绍了SQL操作中创建表、插入数据、数据筛选及聚合查询的方法,并通过具体实例展示了如何进行复杂的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

if(object_id('qa') > 0)
   drop table qa
go
create table qa(
   qtcode varchar(100),
   simpleTime varchar(20),
   water decimal(18,2)
)
insert into qa
select 'a','09:10',11 union all
select 'a','10:01',22 union all
select 'a','10:20',33 union all
select 'a','10:30',44 union all
select 'a','10:40',55 union all
select 'b','08:10',12 union all
select 'b','10:01',13 union all
select 'b','10:02',14 union all
select 'b','10:20',15

select * from qa

declare @sql varchar(3000)
set @sql = 'select qtcode ';
select @sql = @sql + ' ,(case simpleTime when '''+simpleTime+''' then water else 0 end) ['+simpleTime+']'
 from (select distinct simpleTime from qa) as a
set @sql = @sql+' from qa '
exec(@sql)

declare @sql1 varchar(3000)
set @sql1 = 'select qtcode ';
select @sql1 = @sql1 + ' ,max(case simpleTime when '''+simpleTime+''' then water else 0 end) ['+simpleTime+']'
 from (select distinct simpleTime from qa ) as a
set @sql1 = @sql1+' from qa group by qtcode '
exec(@sql1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值