使用带有两列的DISTINCT(或者有效的东西)

时间:2013-07-23 13:59:45

标签: sql distinct

我找到了一个包含城市和州的表格,它看起来像是:

cityid    |city    |stateid    |state
--------------------------------------
0566      |abriaqui|05         |antioquia
0599      |alejand |05         |antioquia
0511      |another |05         |antioquia
0782      |dummy1  |09         |caldas
0783      |dummy2  |09         |caldas
0785      |dummy3  |09         |caldas
0788      |dummy4  |03         |Narino
0767      |dummy5  |03         |Narino
0734      |dummy6  |03         |Narino

正如您所看到的,我拥有带唯一身份证的城市,而他们所属的州就在右边,具有州身份和州名。我想做一个返回类似于DINSTINCT(state)的查询:

STATE
--------------------
antioquia
caldas
narino

但是我也需要这个状态。我怎么能达到这个目标?

5 个答案:

答案 0 :(得分:2)

尝试这种方式:

select distinct state, stateid
from tab

您也可以使用group by子句

select state, stateid
from tab
group by state, stateid

如果您需要某些聚合功能,则分组依据很有用。 解决方案取决于您的要求。

答案 1 :(得分:2)

做这样的事情:

SELECT DISTINCT state, stateid
FROM table

答案 2 :(得分:1)

你试过这个吗?

select distinct stateid, state
from CityStates cs

答案 3 :(得分:1)

Select Distinct stateid, state  
from myTable

答案 4 :(得分:1)

您应该重新安排数据库以将状态存储在单独的表STATES(id,name)和CITIES(id,name,state_id)中,然后选择可以使用的状态

SELECT id, name from STATES