根据条件删除不需要的SQL查询

时间:2011-06-23 13:47:06

标签: sql

我没有SQL查询或SQL数据库的经验,所以如果我的术语错误,请原谅。

所以,我有一个包含大约17,000个SQL插入语句的文件,我在其中输入数据库中5列/属性的数据。在这17,000个语句中,只有大约1200个语句具有所有5列/属性的数据,而其余语句仅包含4列数据。我需要删除所有那些不需要的语句(没有所有5列的数据)。

除了一个一个地删除之外,还有一个简单的方法/过程吗?如果是这样的话,如果有人可以帮我解决它会很棒。

3 个答案:

答案 0 :(得分:1)

我可以想到两种方法:

1:使用SQL:插入所有数据,然后运行查询,删除没有所有必要数据的记录。如果该表当前不为空,请跟踪当前数据“结束”的ID,以便您的查询可以将其用作WHERE语句。

DELETE FROM myTable WHERE a IS NULL OR b IS NULL /* etc. */

2:使用正则表达式处理SQL文件:使用文本编辑器或命令行来匹配“坏”记录或“好”记录。大多数文本编辑器都有一个查找和替换,允许您使用正则表达式。在命令行中,您可以使用grep或其他工具进行处理。或者甚至是用您选择的语言解析的脚本。

答案 1 :(得分:1)

与我的优秀同事不同的方法是将文件运行到临时/一次性数据库中。使用@Rob在其响应中调用的删除将表削减到所需的数据集。然后使用优秀的免费工具(如SSMS Tools Pack)对这些插入语句进行反向工程。

答案 2 :(得分:0)

在notepad ++中打开文件,使用正则表达式替换所有“坏”行。