2013-08-05 3 views
2

Допустим, у нас есть эти данные:Удалить дубликаты Рекордное, но оставить 1 (без Identifier) ​​

rc_id  phonenumber 
1    0 
2    0 
5    1 
5    3 
5    3 
5    3 

и я хочу, чтобы удалить записи, соответствующие rc_id из 5 и phonenumber из 3, сохраняя при этом по меньшей мере, 1 из них

Конечный результат должен быть:

rc_id  phonenumber 
1    0 
2    0 
5    1 
5    3 

Примечание: Я не хочу, чтобы использовать уникальный идентификатор

Я использую это утверждение в настоящий момент, но я заметил, что это также удаляет все другие дубликаты.

cmd.CommandText = "DELETE FROM tbl_data WHERE rc_id='5' AND phonenumber='3'"; 
+0

Этот вопрос не применим к SQLite. –

+1

взгляните на это http://stackoverflow.com/questions/8190541/deleting-duplicate-rows-from-sqlite-database – Ehsan

+0

@xperator вы пробовали ссылку выше? – Ehsan

ответ

-1

набор ROWCOUNT 1 удалить из tbl_data где rc_id = '5' И PHONENUMBER = '3'

+0

См. Http://support.microsoft.com/kb/139444 ссылка –

+3

Это не работает в SQLite. –

+0

Я не проверял тег. В любом случае .... Я думал, что ответ будет оценен ... –

0

Вы могли бы потенциально использовать RowNumber() над()

delete from tbl_data where Rownumber() Over(partition by rc_id, phonenumber Order by rc_id) > 1 
+2

Это не работает в SQLite. –

+0

ahh пропустил этот тег, извините – RoughPlace

-1

насчет это:

cmd.CommandText = "DELETE FROM tbl_data WHERE rc_id='5' AND phonenumber='3' 
        LIMIT (SELECT COUNT(*)-1 FROM tbl_data WHERE rc_id='5' AND phonenumber='3')"; 
+1

Это не работает в SQLite. –

+0

извините, пропустил тег sqlite, тоже ... отредактировал ответ ... – Rob

+0

Я получаю синтаксическую ошибку в 'LIMIT' причине. – xperator

Смежные вопросы