【发布时间】:2017-10-23 22:00:06
【问题描述】:
我需要更新给定表中的 20 列。我要使用的值取决于 CASE 语句。目前我有这个长长的声明,看起来像这样:
更新表 X
SET (c1, c2, c3, c4, c5........c20) = (
选择案例
WHEN(某些条件) THEN
ELSE(其他值1)
结束,
案例
WHEN(某些条件) THEN
ELSE(其他值2)
结束,
案例
WHEN(某些条件) THEN
ELSE(其他值3)
结束......
等等。每列的所有 WHEN 条件都是相同的。那么,有没有一种方法可以在 1 个 CASE 语句中编写所有代码,例如:
更新表 X
SET (c1, c2, c3, c4, c5........c20) = (
选择案例
WHEN (某些条件) THEN (value1), (value2), (value3),......
ELSE (value1), (value2), (value3),......
结束…………
从而消除所有重复的 CASE 语句?
还是我坚持使用长版本?
【问题讨论】:
标签: oracle case-statement