消息关闭
    暂无新消息!

5个回答

︿ 1
新手的话推介http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

反正新手的我是看懂了。
︿ 0

;WITH t(title,[description],author,origin,attr_value,attr_name) AS(
SELECT N'單位九','999','9999','99','99','resName' UNION ALL
SELECT N'單位九','999','9999','99','9999','load' UNION ALL
SELECT N'單位九','999','9999','99','999','load_1' UNION ALL
SELECT N'單位八','888','8888','88','88','resName' UNION ALL
SELECT N'單位八','888','8888','88','8888','load' UNION ALL
SELECT N'單位七','777','7777','77','77','resName' UNION ALL
SELECT N'單位七','777','7777','77','7777','load' 

)
SELECT DISTINCT t.title,t.[description],t.author,origin,right(x.s,LEN(x.s)-1) AS attribute FROM t
OUTER APPLY(
SELECT ';'+tt.attr_name+'='+tt.attr_value
  FROM t AS tt WHERE tt.title=t.title AND tt.[description]=t.[description] AND tt.author=t.author AND tt.origin=t.origin  FOR XML PATH('')
)x(s)

/*
title description author origin attribute
----- ----------- ------ ------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
單位七   777         7777   77     resName=77;load=7777
單位九   999         9999   99     resName=99;load=9999;load_1=999
單位八   888         8888   88     resName=88;load=8888

*/