我在表中有3个不同的电话号码列,需要修改。我的目标是用phone2或phone 3的值替换phone(如果为空或为null)。我不在乎哪个是电话号码。我知道如何使用一个列执行此操作(请参见下面的代码),但是无法弄清楚如何对第三列使用OR语句。查询和数据如下。
原始查询
update test.10_master
set Phone = phone2
WHERE phone IS NULL OR phone = ''
原始数据
id phone phone2 phone3
1 1111111111
2 2222222222
3 3333333333
4 2222222222 3333333333
5 1111111111 2222222222
我想看的
id phone phone2 phone3
1 1111111111
2 2222222222 2222222222
3 3333333333 3333333333
4 2222222222 2222222222 3333333333
5 1111111111 2222222222
我真的很感谢任何建议。我真的想避免不得不运行两个不同的查询
答案 0 :(得分:1)
要处理null
的值,可以使用coalesce()
:
update master
set phone = coalesce(phone2, phone3)
where phone is null
这会用phone
或null
(第一个非空列获胜)更新phone2
的{{1}}。
如果要避免使用空字符串以及phone3
:
null