PLSQL 用多个集合更新多行

Posted

技术标签:

【中文标题】PLSQL 用多个集合更新多行【英文标题】:PLSQL Update multiple rows with multiple sets 【发布时间】:2020-04-08 13:33:42 【问题描述】:

我有一长串需要更新到表格的数据。现在,我了解如何更新,但是,我正在努力更新多行。

这是我的示例数据:

Loc        Check
020201     10000
020301     10050
020401     10100
020501     10150
020601     10200

根据我在这里找到的内容,我尝试了不同的方法。但这似乎不是我想要的。

我在想它会是这样的:

UPDATE t1
         set check = '10000' where loc = '020201',
         set check = '10050' where loc = '020301',
         set check = '10100' where loc = '020401'

虽然没有用:D,所以我不知道如何根据多个集合格式化它......

谢谢。

【问题讨论】:

【参考方案1】:

可以使用 CASE 表达式

update t1
   set check = case loc when '020201' then '10000'
                        when '020301' then '10100'
                        ... etc.
                        end
 where loc in ('020201','020301',...);

但坦率地说,我只想写几个单例更新语句:

update t1 set check = '10000' where loc = '020201';
update t1 set check = '10100' where loc = '020301';
.etc.

【讨论】:

当然!我现在觉得有点尴尬。谢谢托尼!

以上是关于PLSQL 用多个集合更新多行的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL集合笔记

PL/SQl sqldeveloper想在plsql中输出多行

plsql:从选择中插入多行并忽略重复项

更新具有多行的模型

如何使用 SQL 或 PLSQL 将多行数据插入 Oracle 中的表中?

mysql update 如何同时更新多行数据某字段不同的值?