代码之家  ›  专栏  ›  技术社区  ›  user3286430

在插入语句中使用case

  •  1
  • user3286430  · 技术社区  · 10 年前

    我正在尝试使用 case 插入

    这是我使用的代码,但是

    elseif ( exists(select id from transactions where tel = last_inserted_number && secure_using_payslip IS NULL)) then
        update transactions set secure_using_payslip=last_inserted_message where 
         tel=last_inserted_number;
    
         insert into messageout(messagetext, messageto)
            values("you choose not to secure with payslip.", last_inserted_number),(case when last_inserted_message = 'no');
    
         insert into messageout(messagetext, messageto)
            values("you choose to secure with payslip.", last_inserted_number),(case when last_inserted_message = 'yes');
    
           insert into messageout(messagetext, messageto)
            values("Are you formally employed or self employed?.", last_inserted_number);
    

    代码失败。我应该如何在这里使用case?。

    1 回复  |  直到 10 年前
        1
  •  3
  •   Barmar    10 年前

    CASE 表达式转换为值。

    INSERT INTO messageout (messagetext, messageto)
    VALUES (CASE last_inserted_message
                WHEN 'no' THEN "you choose not to secure with payslip."
                WHEN 'yes' THEN "you choose to secure with payslip."
                ELSE "Invalid choice."
            END, last_inserted_number);