用于查询数据的SQL查询

时间:2012-10-10 13:50:28

标签: sql oracle

我想按一个顺序在列中为一个表订购数据,即我正在拥有一张表具有年龄的人

age
12
14
13
14
45
12
45
23
12
23
12

我想一个接一个地对所有相似的年龄进行分组。如何做到这一点?我尝试过使用group by 根据年龄从人群中选择年龄。这对我不起作用。

4 个答案:

答案 0 :(得分:4)

SELECT age FROM Person ORDER BY age

答案 1 :(得分:1)

试试这个:

SELECT * FROM Person ORDER BY age

答案 2 :(得分:0)

MySQL中,您可以使用GROUP BY而无需汇总列,但在oracle中则不能。尝试使用DISTINCT,因此它只会选择唯一值。

SELECT DISTINCT age
FROM Person
Order by age ASC

答案 3 :(得分:0)

我以为你想加入表格,为了做到这一点你有以下选择:

1)简单连接与不同/唯一

select distinct person.name, age.age 
from person, age 
Where Person.Age = Age.Age 
order by age.age

结果:

person_5    12
person_3    14
person_1    23
person_4    23
person_2    45

2)右外连接

Select Distinct Person.Name, Age.Age 
from person right outer join age 
on Person.Age = Age.Age 
order by age.age

结果:

person_5    12
    null    13
person_3    14
person_1    23
person_4    23
person_2    45

3)左外连接

Select Distinct Person.Name, Age.Age 
from person left outer join age 
On Person.Age = Age.Age 
order by age.age

结果:

person_5    12
person_3    14
person_1    23
person_4    23
person_2    45

源表: 人员表(人和年龄栏):

person_1    23
person_2    45
person_3    14
person_4    23
person_5    12

年龄表(仅限年龄栏):

12
14
13
14
45
12
45
23
12
23
12