是否有一个sql update语句来处理我的场景?

jaql4c8m  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(242)

给定一个简单的3列表,其中包含id列、name列和city列,其中city和name可能都包含null:
我可能有一个或两个城市/名称列的内容(但至少有一个列)。是否可以编写一个update语句来处理所有三种可能的情况?
谢谢你的帮助!
一些澄清:
标准sql-无特定于供应商的代码
我认为这是不言而喻的,但显然不是:3种可能的情况是:a)只更新name列,b)只更新city列,c)两者都更新
对于视觉人:
表:mytable

ID    Name       City
1     Bob        Houston

伪代码:

update MyTable
set Name = <new content if content known, otherwise do not update>
   ,City = <new content if content known, otherwise do not update>
where ID = 1

因为我是新来的,不知道有多少巨魔出没:下面的问题(这是真的吗)?为什么要更新字段?因为这就是人们使用dbms所做的!

k97glaaz

k97glaaz1#

case表达式将执行以下操作:

update MyTable
  set Name = case when $1 is null then name else $1 end,
      city = case when $2 is null then city else $2 end
where ID = 1;
``` `$1` 以及 `$2` 是从代码中提供的参数。确切的语法取决于您使用的驱动程序/接口(在jdbc中,这是 `?` 而不是 `$x` )

相关问题