2011-06-23 106 views
1

我還沒有SQL查詢或SQL數據庫的經驗,所以請原諒我,如果我的術語是錯誤的。根據條件刪除不需要的SQL查詢

所以,我有一個文件,其中包含大約17,000個SQL插入語句,我在這裏輸入數據庫中5列/屬性的數據。在這17,000條語句中,只有大約1200條語句具有所有5列/屬性的數據,而其他語句只有4列的數據。我需要刪除所有這些不需要的語句(沒有所有5列的數據)。

有沒有一個簡單的方法/過程去做,而不是一個接一個地刪除?如果是這樣,如果有人能幫助我,那將是一件好事。

+0

編寫一些正則表達式來匹配不需要的行,然後使用Notepad ++輕鬆地從文件中刪除它們。 –

+0

如果您只發布了幾行樣本數據,那將有助於給出具體答案。這可能是使用'grep'或'awk'解決的一個非常容易的事情。 –

回答

1

與我在這裏的優秀同事不同的方法是將文件運行到暫存/一次性數據庫。使用在他的回覆中調出的@Rob刪除所需數據集。然後使用一個很好的免費工具,如SSMS Tools Pack來反向設計這些插入語句。

0

在記事本++中打開文件,用正則表達式替換所有「壞」行。

1

我能想到的兩種方法:

1:使用SQL:插入所有數據,然後運行一個查詢,刪除它不具備所有必要的數據的任何記錄。如果表格當前不是空的,請跟蹤當前數據「結束」的ID,以便您的查詢可以將其用作WHERE語句。

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

2:處理與正則表達式的SQL文件:使用文本編輯器或命令行要匹配「壞」記錄或「良」的記載。大多數文本編輯器都有一個查找和替換,允許您使用正則表達式。而命令行則可以使用grep或其他工具來處理。或者甚至是一個用你的選擇語言解析的劇本。