从具有多个值MS Access的列中选择唯一值

时间:2014-07-17 10:52:04

标签: sql ms-access

表结构是这样的 表名:员工

**Employee_Id   APPRS_TY_CD**
540589                2
540589               UNK
1952938               2
1952938              UNK
2488178               1
2488178              UNK
3818934               1
3818934              UNK
5402944               1

如果员工ID具有APPRS_TY_CD(UNK和值),则APPRS_TY_CD应该是值而不是UNK。如果APPRS_TY_CD对于员工ID不是UNK,那么应该按原样填充该值。

我的最终输出应该是这样的。

**Employee_Id   APPRS_TY_CD**
540589                2
1952938               2
2488178               1
3818934               1
5402944               1

我正在使用MS Access。

1 个答案:

答案 0 :(得分:2)

这应该相当简单,因为数字被认为是"较低"我可以使用聚合函数创建一个SQL Fiddle here(注意这是Sql Server,但代码应该与它不使用专有功能相同)。根据您的数据,您可以使用SQL中的MIN函数为每个用户获取APPRS_TY_CD。这是我建议的代码:

SELECT 
    Employee_Id
    , MIN(APPRS_TY_CD) APPRS_TY_CD
FROM 
    Employee
GROUP BY 
    Employee_Id

返回的结果是(你应该能够自己执行小提琴来证明这一点):

EMPLOYEE_ID    APPRS_TY_CD
540589         2
1952938        2
2488178        1
3818934        1
5402944        1