根据不同的列值从一列中选择值
问题描述:
在这里简洁地陈述我的问题,所以我只举一个例子。
比方说,我对学生DB2表:根据不同的列值从一列中选择值
Name Class Grade
Billy J Econ A
Sarah S Maths B
Greg X Computes A-
Billy J Maths D
Greg X Maths C+
而且我想找回那些在这两个经济学和数学的学生,正是如此显示的信息:在
Name Maths Grade Econ Grade
Billy J D A
如何世界我可以做到这一点?
答
该解决方案将解决这一问题为你命名为两类:
SELECT Name, Math.Grade AS MathsGrade, Econ.Grade AS EconGrade
FROM Students Math INNER JOIN Students Econ ON Math.Name = Econ.Name
WHERE Math.Class = 'Maths' AND Econ.Class = 'Econ'
这个解决方案没有做到的是在您的派生列名的空间的唯一的事。您可以通过使用任何DB2用于标识符引号的字符来编写Maths Grade
和Econ Grade
来完成此操作。
被包括在内的学生必须同时拥有数学和经济学分数。
+0
完美!干杯!解决了我眼前的问题,并且我在写查询方面做得更好。 – NWilkie
答
SELECT * from Students
where id in
(SELECT id from Students where Class = 'Econ')
AND id in
(SELECT id from Students where Class = 'Math');
+2
返回多行,而不是一行,并将包含非数学,非经济类的行。 –
什么是数据库系统? SQL Server,MySQL等... –
DB2,经过编辑用于阐述。好问题。 – NWilkie
无需参考产品特定功能即可解决此问题。 –