1

我有一张名为task_assignment.
它有以下 6 个字段,命名为:

testId,quesId,evaluatorId,studId and marks

实际上,该表用于存储每个测试的分数,包括每个学生的每个评估者的分数(按问题 ID)。

我有 testId=1, quesId=Q1 和 studId=S1 作为输入。所以,我想在选择查询中获得以下信息。即,Both evaluators(E1,E2)给定输入的标记。

sql 查询不会为此编写超过一行...我希望查询输出为:20,15 在一行中。

请指导我摆脱这个问题......

在此处输入图像描述

4

1 回答 1

3

我认为您将无法获得所需的输出20, 15,因为只有一条记录满足您的标准testId = 1, quesId = Q1, studId = S1

但要回答你的问题,这是我的问题:

SELECT GROUP_CONCAT(marks)
    FROM task_assignment
    WHERE testId = 1
        AND quesId = 'Q1'
        AND studId = 'S1';

我已经在SQL Fiddle中尝试过。

编辑 1

如果要在C#代码中解析查询的输出以将它们存储在单独的变量中,可以使用以下Split函数:

string marks = "20, 15"; //Suppose that this value came from database

int mark1 = Convert.ToInt32(marks.Split(',')[0]);
int mark2 = Convert.ToInt32(marks.Split(',')[1]);

根据marks变量的值,代码仍然容易出错,只需确保您已经验证了该值。

这可能与问题无关,但仍然可以帮助您完成任务,这就是我的答案。

于 2013-01-07T07:48:57.823 回答