Sql Server Some Question --Case...Whne...(2)

本文介绍了一种在 SQL Server 中将多个字段值按需拼接成一行的方法。通过使用 `CASE WHEN` 和 `MAX` 函数组合,可以有效地实现字段值的横向拼接,适用于需要将多个相关字段值汇总展示的场景。

----问题----
/*
在SQL server中,表为:
create table tt1
(
id int identity(1,1),
T_key varchar(10),
T_value varchar(10),
T_remark varchar(20)
)
go
insert tt1 values('key1','value1','remark1')
insert tt1 values('key2','value2','remark2')
insert tt1 values('key3','value3','remark3')
go
要得到这样的结果:
字段: key1, key2, key3
——————————————————
字段值:value1,value2,value3
*/

----解决方案-----

declare
@a table
(
id int identity(1,1),
T_key varchar(10),
T_value varchar(10),
T_remark varchar(20)
)

insert into @a select 'key1','value1','remark1'
union all select 'key2','value2','remark2'
union all select 'key3','value3','remark3'
select * from @a
select [字段:]='字段值:',max(case when t_key='key1' then t_value else '' end)as key1,
max(case when t_key='key2' then t_value else '' end)as key2,
max(case when t_key='key3' then t_value else '' end)as key3
from @a

 

转载于:https://www.cnblogs.com/sesexxoo/archive/2007/03/17/6190358.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值