如果条件与表2中的字段匹配,那么更新表1字段?

问题描述:

我有两个表(见数据样本):如果条件与表2中的字段匹配,那么更新表1字段?

示例数据:

APARTMENT TABLE    PAYMENT_STATUS TABLE     
========================== ======================= 
APARTMENT | DEBT    APARTMENT |STATUS 
10   |0     10   |NULL    
22   |500    22   |NULL    
33   |250    33   |NULL 

我想更新“PAYMENT_STATUS”表中根据“债务”字段的值的号码“公寓”表,让我们说,房租价格是500,我想更新‘状态’字段设置为:

  • 如果债务是0,则该值设置为‘状态’3
  • 如果债务在1到499之间EN“STATUS”的值设置为2
  • 如果债务是500,“状态”的值设置为1

我用UPDATE语句相当的新秀,任何人都可以提供帮助与这个?

使用Merge Intohttp://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm#SQLRF01606

MERGE INTO PAYMENT_STATUS m USING 
(SELECT APARTMENT , 
    CASE 
    WHEN DEBT = 0 
    THEN 3 
    WHEN DEBT BETWEEN 1 AND 499 
    THEN 2 
    WHEN DEBT = 500 
    THEN 1 
    END status 
FROM APARTMENTS 
) r ON (m.APARTMENT = r.APARTMENT) 
WHEN matched THEN 
    UPDATE SET m.STATUS = r.STATUS; 
+0

不知道该函数:O,非常感谢你!!!! – Rycerzfrost