2009-01-15 34 views
1

我很困惑如何編寫存儲過程來處理條件刪除。SQL:你如何處理條件刪除?

我有4列(IDABC)和數據的表看起來像這樣的表:

ID | A    | B  | C 
---------------------------------- 
1 | Debbie Jones |  | 
2 | John Jones |  | 
3 | James Jones |  | 

ABC持有人的名字。我將如何編寫一個存儲過程刪除Debbie Jones行,而不影響BC列爲空字符串的其他兩行?

回答

2

然後你需要另一個條件。如果你想刪除Debbie Jones,那麼你需要在你的條件中指出,通過指定列A =「Debbie Jones」或ID列等於1.

這當然假設ID和A列中的值是唯一的,並且可以唯一地標識該行。

0

您的意思是DELETE FROM table WHERE A = "Debbie Jones";

4
delete from YourLousyTableName 
where A='Debbie'AND B='Jones' 

假設ID = A =「德比」 B =「瓊斯」 C =「」

1

我可能沒有完全理解你的問題,但你在找這樣的事情?

delete from Table 
where [Name] = 'Debbie Jones'; 
0

首先,您的示例需要在你的問題正確格式化(使用代碼標記!)所有的

其次,我想你想避免名稱刪除的錯誤因爲可能有重複的名字。在這種情況下,您可能只想通過ID號碼進行刪除。

DELETE FROM MyTable WHERE ID=4 

|ID|  A  | B | C | 
|==|==============|=====|=====| 
| 1| Debbie Jones | " " | " " | 
| 2| John Jones | " " | " " | 
| 3| James Jones | " " | " " | 
0

我不認爲你會需要像存儲過程這種類型的情況。任何如何試試這個,

create procedure prcDelUsingID 
@UID <Data Type of the ID column> 
as 
delete from <Your Table Name> 
where [email protected] 

執行存儲過程如下,

prcDelUsingID <ID of the Debbie Jones> 
+0

+1指出參數可能是必要的,而而不是硬編碼誰應該刪除。 -1暗示簡單的SQL語句不一定需要在存儲過程中 – 2009-01-15 18:19:05

0

你可以試試下面的命令:

x=sqldf(select * from [table_name] where A!='Derbie Jones')