-1

我认为这很容易,但我尝试的所有方法都没有给出预期的结果。

当我尝试运行此查询时:(在更大的表上)

SELECT Id, Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
ORDER BY newCode ASC

我得到这个结果:

id  code    newCode  course
----------------------------
1   30002   3000231  aaaa-1
2   30002   3000232  aaaa-2
3   30002   300021   aaaa-a1
4   30002   300022   aaaa-a2
5   30009   300093   bbbb-1
6   30009   300093   bbbb-2
7   30012   3001231  cccc-1
8   30012   3001232  cccc-2
9   30012   300121   cccc-a1
10  30012   300122   cccc-a2
11  30012   300123   cccc-a3
12  30013   3001331  dddd-1

假设我想要某种 sql 查询,它会给我只包含课程名称的表,(每个新课程都是列中的一个新值 - 代码),例如我想要得到的:(第一个每门课程都很好)

id  code    newCode  course
----------------------------
1   30002   3000231  aaaa-1
5   30009   300093   bbbb-1
7   30012   3001231  cccc-1
12  30013   3001331  dddd-1

我怎么做?我试过了:

SELECT Id, Distinct Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
ORDER BY newCode ASC

为什么它不起作用,没有它起作用的“独特”,有了它,它就会失败。

此外,下一个问题不太重要,但仍然......有没有办法让我只获得课程本身的名称,例如:“aaaa”而不是“aaaa-a1”,考虑到名称不必相同像这里这样的模式,但我知道“-”之后的可能性是什么(比如“-a1”或“-a2”)

4

3 回答 3

0

试试GROUP BY喜欢

SELECT Id, Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
GROUP BY Code ORDER BY newCode ASC
于 2013-06-25T11:29:06.110 回答
0

尝试将 放在distinct之后select,如下所示:

SELECT distinct Id, Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
ORDER BY newCode ASC
于 2013-06-25T11:42:34.327 回答
0

对第一列使用 distinct,您不能在第一列之后使用 distinct

于 2013-06-25T12:02:28.253 回答