[英]How to make Single Column into Rows in Sql Server 2008 R2?
Hi i am in confusing state to run an Sql Query, My table looks like this 嗨,我处于令人困惑的状态下运行Sql查询,我的表看起来像这样
from the above image there are two columns. 从上图可以看到两列。 First column consists of Register No of the student.
第一列包括学生的登记号。 Second Column Consists his/Her Exam Results.
第二栏包括他/她的考试成绩。 P States he is passed in the Certain Subject.In the report i want result set like the below.
P声明他在某项主题中获得通过。在报告中,我想要以下结果集。 If the Result consists any number he is failed in the following subject.
如果结果包含任何数字,则他在下一个主题中会失败。
i want the result should be like this. 我希望结果应该是这样的。 Can any body help me in this.
任何人都可以在这方面帮助我。 i am not getting any idea.
我没有任何想法。
Try Below Query 尝试以下查询
SELECT RegisterNo,'English' AS Subject ,
CASE WHEN SUBSTRING(Result+ SPACE(5),1,1) = 'P' THEN 'Pass'
WHEN ISNUMERIC(SUBSTRING(Result+ SPACE(5),1,1)) = 1 THEN 'Fail'
ELSE 'Invalid' END AS Result
FROM table1
UNION ALL
SELECT RegisterNo,'Sanskrit' AS Subject ,
CASE WHEN SUBSTRING(Result+ SPACE(5),3,1) = 'P' THEN 'Pass'
WHEN ISNUMERIC(SUBSTRING(Result+ SPACE(5),3,1)) = 1 THEN 'Fail'
ELSE 'Invalid' END AS Result
FROM table1
UNION ALL
SELECT RegisterNo,'Maths' AS Subject ,
CASE WHEN SUBSTRING(Result+ SPACE(5),5,1) = 'P' THEN 'Pass'
WHEN ISNUMERIC(SUBSTRING(Result+ SPACE(5),5,1)) = 1 THEN 'Fail'
ELSE 'Invalid' END AS Result
FROM table1
UNION ALL
SELECT RegisterNo,'Science' AS Subject ,
CASE WHEN SUBSTRING(Result+ SPACE(5),7,1) = 'P' THEN 'Pass'
WHEN ISNUMERIC(SUBSTRING(Result+ SPACE(5),7,1)) = 1 THEN 'Fail'
ELSE 'Invalid' END AS Result
FROM table1
UNION ALL
SELECT RegisterNo,'Social' AS Subject ,
CASE WHEN SUBSTRING(Result+ SPACE(5),9,1) = 'P' THEN 'Pass'
WHEN ISNUMERIC(SUBSTRING(Result+ SPACE(5),9,1)) = 1 THEN 'Fail'
ELSE 'Invalid' END AS Result
FROM table1
ORDER BY RegisterNo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.