如果条件与表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 Into
。 http://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;
不知道该函数:O,非常感谢你!!!! – Rycerzfrost