小编ris*_*ijd的帖子

SQL - 使用CASE语句更新,我是否需要多次重复相同的CASE?

我的UPDATE语句如下:

UPDATE  customer
SET  forenames=ot.forenames,
     surname =

CASE WHEN ot.safeplace IS NULL
THEN 'test SAFEPLACE IS NULL'
ELSE 'test Safeplace IS NOT NULL'
END,

     middlename =

CASE WHEN ot.safeplace IS NULL
THEN 'test2 SAFEPLACE IS NULL'
ELSE 'test2 Safeplace IS NOT NULL'
END,

FROM    order_transaction ot

WHERE   customer.custid = ot.custid
AND ot.trans_orderid = 5678
AND customer.custid = 1234
Run Code Online (Sandbox Code Playgroud)

以上工作.它基本上检查另一个表中的字段是否为NULL,然后相应地更新客户的"姓"和"中间名".如您所见,我重复了两次相同的CASE语句.我的问题是 - 有一种方法可以只指定一次CASE语句吗?

关键是,如果我想根据某个条件更新10个字段,我是否需要包含10个类似的CASE条件?或者可以改进SQL以在WHEN/ELSE子句中只有一个CASE和10个字段更新?

(我使用的是Postgresql 8.2数据库,但我相信上面是标准的SQL).

非常感谢,Rishi

sql postgresql

10
推荐指数
2
解决办法
3万
查看次数

标签 统计

postgresql ×1

sql ×1