如何在SQL Developer中用单条UPDATE语句更新不同行的不同值
单条语句实现多行不同值更新
可以通过CASE表达式在UPDATE语句的SET子句中,根据installment的不同值分配对应的日期,结合loan_id的过滤条件,用单条语句完成原三条语句的更新操作。
示例SQL语句
UPDATE repayment_schedule SET fromdate = CASE installment WHEN '2' THEN TO_DATE('03-SEP-22', 'DD-MON-RR') WHEN '3' THEN TO_DATE('03-OCT-22', 'DD-MON-RR') WHEN '4' THEN TO_DATE('03-NOV-22', 'DD-MON-RR') END, duedate = CASE installment WHEN '2' THEN TO_DATE('03-OCT-22', 'DD-MON-RR') WHEN '3' THEN TO_DATE('03-NOV-22', 'DD-MON-RR') WHEN '4' THEN TO_DATE('03-DEC-22', 'DD-MON-RR') END WHERE loan_id = '22' AND installment IN ('2', '3', '4');
说明
- 用
CASE表达式分别对fromdate和duedate字段做条件赋值,匹配不同installment值设置对应日期。 - 使用
TO_DATE函数显式转换字符串为日期类型,避免因数据库日期格式设置导致的转换错误。 WHERE子句过滤目标loan_id和需要更新的installment范围,确保仅更新指定行。
注:如果第二条语句中的
m_loan_repayment_schedule是独立表而非笔误,需针对该表单独写一条类似的UPDATE语句——单条UPDATE只能操作一个表。
内容的提问来源于stack exchange,提问作者Muhammad Usman
相关产品推荐
相关产品推荐

