2012-10-10 36 views

回答

1

它是不完全清楚你正在尝试做的,但这样将会把从码和值列项为一行:

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 

SQL Fiddle with Demo

1

这种类型的格式是通常更适合于表示层做或报告工具,但这里是做同样的事情在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 

同样,这WOU不像HTML表格或任何东西显示,也没有各种格式和对齐选项。

感谢@bluefeet设置the fiddle

相关问题