gpt4 book ai didi

sql - 根据在字段中找到的文本删除记录 (

转载 作者:行者123 更新时间:2023-12-01 09:34:12 27 4
gpt4 key购买 nike

我通常在 Excel 2007 中完成大部分工作,但我认为 Excel 不是管理我需要处理的数据的正确工具。所以我正在尝试将一个 excel 电子表格转换为一个 Access 2007 db,我可以毫无问题地做到这一点,但在对电子表格做任何事情之前,我会通过清理其中的数据以使用结果信息的过程。在 excel 中,我使用如下宏

Sub deletedExceptions_row()
Dim i As Long
Dim ws As Worksheet

On Error GoTo whoa

Set ws = Sheets("data")

With ws
For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If .Cells(i, 3) = "" Or _
VBA.Left(.Cells(i, 3), 4) = "511-" Or _
VBA.Left(.Cells(i, 3), 5) = "CARL-" Then
.Rows(i).Delete
End If
Next i
End With
Exit Sub
whoa:
MsgBox "Value of i is " & i
End Sub

要删除电子表格中不必要的记录,我将如何在 Access 2007 中完成同样的事情。

该宏正在查找特定部分,或者更确切地说是记录第三个字段的前几个字符,以确定是否需要删除整个记录(例如 511-QWTY-SVP 或 CARL-52589-00)。总共有大约 180 个这样的字符类型会影响需要从电子表格中删除的 1000 行,但我想在 Access 2007 中复制相同的过程,但不知道如何。

感谢所有人为解决此问题提供帮助

最佳答案

在 Access 中,您可以执行 DELETE 语句来丢弃字段中的值为空字符串 ("") 或与您的模式之一匹配的行。

DELETE FROM YourTable
WHERE
YourField = ""
OR YourField ALike "511-%"
OR YourField ALike "CARL-%";

使用 YourField 索引,WHERE 子句中的模式匹配比使用 Left() 函数(例如您使用的电子表格宏)的查询提供潜在的巨大性能改进。 IOW,以下查询将要求 db 引擎在 YourTable 的每一行上运行这些 Left() 表达式。但是通过上面的查询和 YourField 索引,数据库引擎可以简单地选择匹配的行......这很容易快一个数量级。

DELETE FROM YourTable
WHERE
YourField = ""
OR Left(YourField, 4) = "511-"
OR Left(YourField, 5) = "CARL-";

关于sql - 根据在字段中找到的文本删除记录 (,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11330950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com