我从查询中得到如下表所示的输出
现在我需要我的输出应该类似于下表
它将多行的公共字段合并到一个单元格中。
我怎样才能写一个查询来做到这一点?
我从查询中得到如下表所示的输出
现在我需要我的输出应该类似于下表
它将多行的公共字段合并到一个单元格中。
我怎样才能写一个查询来做到这一点?
这种类型的格式化通常更适合在表示层或报告工具中执行,但这是在 T-SQL 中执行类似操作的一种方法:
select
case when rownumber = 1 then cast(id as varchar(11)) else '' end as id
, code
, value
from (
select
*
, id as idsort
, row_number() over (partition by id order by code) as rownumber
from yourtable
) as a
order by idsort, rownumber
同样,这不会像 html 表格或任何东西那样显示,也不会有各种格式和对齐选项。
感谢 @bluefeet 设置fiddle。
目前尚不清楚您要做什么,但这会将代码和值列中的项目放在一行中:
select distinct id,
stuff((select ', ' + code
from yourtable t2
where t1.id = t2.id
for XML path('')),1,1,'') code,
stuff((select ', ' + cast(value as varchar(10))
from yourtable t2
where t1.id = t2.id
for XML path('')),1,1,'') value
from yourtable t1