仅更新具有唯一ID的记录

时间:2015-03-04 09:45:15

标签: sql ms-access

只有当该ID只有一条记录时,才需要更新表中的记录。如果已有多条记录,我还需要插入记录。

UPDATE survey, survey_errors 
SET survey.depth = survey_errors.max_depth
WHERE survey.depth=-1
AND survey.hole_id=survey_errors.hole_id 
AND survey_errors.max_depth Is Not Null

但现在如何确定survey.hole_id是否独一无二?

1 个答案:

答案 0 :(得分:0)

根据您的要求,您可以通过这种方式找到uniqueId

SELECT
    col1, col2
FROM
    YourTable
GROUP BY
    col1, col2
HAVING 
    COUNT(*) = 1

OR

您可以简单地使用DISTINCT。它将为您返回没有重复的结果。

SELECT DISTINCT col1, col2
FROM YourTable

更新应该是这样的(这将仅更新唯一值):

UPDATE TblName
SET Anything = Anything2
WHERE Anything IN ( 
    SELECT
        Anything 
    FROM
        TblName
    GROUP BY
        Anything
    HAVING 
        COUNT(*) =1
)