以下のような更新ステートメントを書きたいと思っています。
update table set
comments = NVL (null, acknowledgement_status),
acknowledgement_status = 'Acknowledge',
alert_updated_time = sysdate,
acknowledged_by = 'Allen'
where alert_id = 8;
実際には、JSP ページから値を更新する必要があります。ユーザーがコメントを付けられなかった場合は、ユーザーがacknowledgement_status
付けた対応する を として更新する必要がありますcomments
。しかし、上記のクエリから、前のacknowledgement_status
ものは として設定されていcomments
ます。これについてどうすればいいですか?
テーブルの内容を次のように考えてください。
Alert_ID Acknowledgement_status Comments Alert_updated_time Acknowledged_by
-------- ---------------------- -------- ------------------ ---------------
8 OPEN None AUTO
以上がテーブルの内容です。JSP には、コメント フィールド、テキスト ボックス、およびacknowledgement_status
ドロップダウンがあります。ユーザーがAcknowlegement_status
コメント付きを空白に変更すると、確認ステータスがコメントとして更新されるようにします。すなわち:
update table set
comments = NVL (textbox.value, acknowledgement_status),
acknowledgement_status = dropdown.value,
alert_updated_time = sysdate,
acknowledged_by = sessionid.value;
where alert_id = 8;
textbox.value = null, dropdown.value = 'Acknowledge', sessionid.value = 'Allen'
テーブルが次のように更新されたとき:
Alert_ID Acknowledgement_status Comments Alert_updated_time Acknowledged_by
-------- ---------------------- -------- ------------------ ---------------
8 Acknowledge OPEN sysdate Allen
しかし、私が欲しいのは:
Alert_ID Acknowledgement_status Comments Alert_updated_time Acknowledged_by
-------- ---------------------- -------- ------------------ ---------------
8 Acknowledge Acknowledge sysdate Allen
むしろ書ける、
update table set
comments = NVL (textbox.value, dropdown.value),
acknowledgement_status = dropdown.value,
alert_updated_time = sysdate,
acknowledged_by = sessionid.value;
where alert_id = 8;
しかし、やはり、decode
ベースにする予定dropdown.value
があり、現在の値で更新できればもっと簡単だと思いました。
助けていただければ幸いです。