从表中删除多个记录中的一个

时间:2011-12-05 11:52:21

标签: database excel

我将从Excel工作表导入的数据导入到db中的表中。 现在excel表中提供的数据包含多个记录,除了一个列值之外的所有记录都不同。 我需要删除其中一个。

以下是我的示例数据...... 我需要在“variant”列中删除带有null的那个

INDEX_NUM  ||  variant   || CASE_PACK   ||cases || units        
1020                         144               0       0        
1020           null          144               1       116     ------- >    TO DELETE 
1020            xyz          144               1       116      

数据是excel表本身是不正确的...它有相同数据的多行只是变体的差异。 我的数据库中有数据。 现在我要删除两个havin变体中的那一行为null 我不能使用HAVING COUNT(VARIANT) >1,因为还有其他行是当前的,但也有多个变体。

所以我需要忽略以DP和BD开头的变体。

我希望这很清楚......

1 个答案:

答案 0 :(得分:1)

你可以尝试

DELETE FROM your_table
WHERE variant IS NULL
  AND index_num IN
    (SELECT DISTINCT index_num FROM your_table
     GROUP BY index_num, case_pack, cases, units
     HAVING COUNT(variant) > 1) p