SQL-For xml Path 字符串连接

 
CREATE TABLE wjstest
(
    Name VARCHAR(100) NOT NULL,
    NValue VARCHAR(100) NOT null   
)
 
INSERT INTO wjstest(    [Name],    NValue)
VALUES(     'a',    'a-value')
 
INSERT INTO wjstest(    [Name],    NValue)
VALUES(     'a',    'a-value2')
 
 
INSERT INTO wjstest(    [Name],    NValue)
VALUES(     'b',    'b-value1')
 
INSERT INTO wjstest(    [Name],    NValue)
VALUES(     'b',    'b-value2')
 
 
SELECT Name,
(SELECT NValue+',' FROM wjstest  WHERE Name=A.Name  FOR XML PATH('')) AS unionfield
FROM wjstest A
GROUP BY NAME
 
 
 
-- 使用pivot实现行列互转
SELECT * FROM 
(
SELECT  NAME AS name,idcardno AS idcardno , score.Score AS Score ,'subject'+cast(score.subjectindex as varchar(2)) as subjectindex   FROM CPHO_QuarterFinalStudent AS QFStudent
INNER JOIN CPHO_PaperTestScore  AS score ON(QFStudent.id = score.QuarterFinalStudentId )
) AS tb 
pivot
(  max(tb.Score)
FOR subjectindex IN (subject1,subject2,subject3,subject4,subject5)) a
--在代码里面使用,请替换两个地方:
--1,动态的字段: NAME AS name,idcardno AS idcardno
--2,动态生成的题目标题:subject1,subject2,subject3,subject4,subject5
 
 
 




posted @ 2014-01-06 15:17  2014从零开始  阅读(238)  评论(0)    收藏  举报