这种情况下,SQL语句怎么写?急急急!

我有表table1 其中有字段 name 和 address。
这两个字段的值不可能相等,而且不同行它们的值也不会相等。
现在要实现一个功能:
我传入属于这两个字段的任意一个值,如果这个值与name或者address匹配。则将name或者address清空。
例如:name是 xiaoming,address 是beijing
name是xiaohong,address 是shanghai
我要求输入xiaohong,就将xiaohong清空。输入beijing就将beijing清空

begin
if exists ( select * from tablename where name=@str)
begin
update tablename set name='' where name=@str
end
else
begin
if exists ( select * from tablename where address=@str)
begin
update tablename set name='' where address=@str
end
else
begin
select '没有匹配' as result
end
end
end

---- 其中@str是你传入的变量,tablename是你的表名

可以用case when语法,判断哪个字段和值相等,就设置哪个字段为空

一定要在sql中写吗?这种一般是在代码里处理的吧。
一定要在sql中写的话,连续执行两个语句就可以了吧?
既然你输入的值不可能在两个字段里重复出现,就直接执行下面这两个语句啊。
update table set name = "" where name = #data#;
update table set address = "" where address = #data#;

用or关键字呀,delete FROM table1 where name='' or address=''

update table
set name = (case when name = #data# then '' else name end),
address = (case when adress = #data# then '' else address end)
where ...