注册 登录
编程论坛 SQL Server论坛

怎样删除表中的一些记录?

msddali 发布于 2010-06-24 16:31, 1223 次点击
我是初学。我的问题是,我想将一个表(比如purt表)中的某些记录删除掉,即,purt表中字段code值等于A、C、E。。。的记录删除掉,而等于A、C、E。。。值的数据我用另外一个Excel表(有上万条呢),能否编一段语句,通过调用Excel表每个值,再去删purt表相应的记录?谢谢各位老师了!!!
9 回复
#2
球球2010-06-24 17:43
delete from purt where code in ('A','C','E')
#3
球球2010-06-24 17:48
Excel好像有去重复的功能
#4
球球2010-06-24 17:49
你可能经常需要在 Excel 表格中找出重复数据并删除它们,在一大堆数据中人工找不太现实。下面教两条小方法,帮你处理重复数据。

方法 1:突出显示重复数据

你可以将重复的数据突出显示,这样你就可以找到它们,并且避免重复录入。做法如下:

1.   先要选中你要找出重复数据的范围。比如说,你要在“员工编号”里找重复项,就把“员工编号”一栏全选中。

2.   然后在开始选项卡 -> 条件格式 -> 突出显示单元格规则 -> 重复值。

3.   在重复值对话框上,选择你要把重复项突出显示的格式,再确定

方法 2:轻松删除重复数据

可以利用 Excel 删除重复数据的功能,把重复项删除。做法如下:

1.   选中你要删除重复数据的范围。比方说,把整张表格全部选中。

2.   然后在数据选项卡上 -> 删除重复项。

3.   弹出一个删除重复项对话框。你需要在哪几列里面找重复项,就把哪几列勾上,确定一下。

4.   Excel 会检查重复值,并把含有重复值的记录删掉,然后弹出一个框告诉你删掉多少条(或是没有找到重复记录)
#5
cnfarer2010-06-24 18:00
delete from purt where code in (select code from openrowset(...))或
delete from purt where code in (select code from opendatasource(...))
openrowset(...)或opendatasource(...)的用法参见http://blog.
#6
msddali2010-06-25 10:51
回复 5楼 cnfarer
五楼,你好!
     如果我的Excel工作薄在D盘根下,工作薄名为abc.xls,而具体工作表名为sheet1,麻烦你帮我将语句补充完整好吗?谢谢啦!(用Jet)
#7
msddali2010-06-25 11:08
回复 4楼 球球
四楼,你好!
    首先谢谢你。可能是我表达有误,我不是要删除Excel表中的数据,而是要删除数据库中的数据。不过你的方法挺好,在Excel使用上又学一着,谢谢你。
#8
cnfarer2010-06-25 21:16
自己使用时要注意一下列名(要与Excel表中的相应列名一致)
delete from purt where code in (select code from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\abc.xls', 'select * from [Sheet1$]'))
#9
msddali2010-06-28 12:05
回复 8楼 cnfarer
十分感谢!!!
#10
msddali2010-06-28 12:40
试了一下,出现如下信息:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005:  提供程序未给出有关错误的任何信息。]。
1