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