我很困惑如何编写存储过程来处理条件删除。
我有一个包含4列(ID
,A
,B
,C
)的表格,表格中的数据如下所示:
ID | A | B | C
----------------------------------
1 | Debbie Jones | |
2 | John Jones | |
3 | James Jones | |
列A
,B
和C
包含一个人的姓名。如何编写将删除Debbie Jones
行的存储过程,而不影响B
和C
列为空字符串的其他两行?
答案 0 :(得分:4)
delete from YourLousyTableName
where A='Debbie'AND B='Jones'
假设ID = 1 A ='黛比'B ='琼斯'C =''
答案 1 :(得分:2)
那你需要另一个条件。如果你想删除Debbie Jones,那么你需要在你的情况下指明,通过指定A =“Debbie Jones”列或者ID列等于1。
当然,这假设ID和A列中的值是唯一的,并且可以唯一地标识该行。
答案 2 :(得分:1)
我可能不完全理解你的问题但是你在找这样的东西吗?
delete from Table
where [Name] = 'Debbie Jones';
答案 3 :(得分:0)
你的意思是DELETE FROM table WHERE A = "Debbie Jones";
?
答案 4 :(得分:0)
首先,您的示例需要在您的问题中正确格式化(使用代码标记!)
其次,我假设您正在尝试避免因名称删除而导致错误,因为可能存在重复的名称。在这种情况下,您可能只想删除ID号。
DELETE FROM MyTable WHERE ID=4
|ID| A | B | C |
|==|==============|=====|=====|
| 1| Debbie Jones | " " | " " |
| 2| John Jones | " " | " " |
| 3| James Jones | " " | " " |
答案 5 :(得分:0)
对于这种情况,我认为你不需要像存储过程那样的东西。如何尝试这个,
create procedure prcDelUsingID
@UID <Data Type of the ID column>
as
delete from <Your Table Name>
where ID=@UID
按如下方式执行存储过程,
prcDelUsingID <ID of the Debbie Jones>
答案 6 :(得分:0)
您可以尝试以下命令:
x=sqldf(select * from [table_name] where A!='Derbie Jones')