[英]Query to update 1 column with no condition and another column only if certain condition is met
[英]SQL to update a Select Statement column based on another Columns value but only if condition is met
如果列task_status2
的值为Closed
,我有一个 select 语句,并希望将Task_Days_Due
更新为字符串( N/A - Task is Closed
)当前它显示到期前的天数,但如果关闭则无关紧要。
这是当前的选择:
SELECT
Report_Run_Date,
incident_number,
INC_Reported_Date,
TASK_id,
TASK_Assigneee,
TASK_Status, -- Staged 1000, Assigned 2000, Pending 3000, Work In Progress 4000, Waiting 5000, Closed 6000, ByPassed 7000
Task_Status2,
-- Set RAG column to RAG is not closed
case WHEN TASK_Status = 6000 THEN "N/A - Task is Closed"
WHEN Task_Days_Due <= 0 THEN 'Red'
WHEN Task_Days_Due > 0 and Task_Days_Due <= 7 THEN 'Amber'
WHEN Task_Days_Due > 7 THEN 'Green'
WHEN Task_Days_Due is NULL THEN 'No Task End Date'
end as Red_Amber_Green,
Task_Days_Due, ?????
我的挑战是如果不满足条件,我想保持原样。 如果列task_status2
值未Closed
,则先前的尝试将值覆盖为 null
SELECT
Report_Run_Date,
incident_number,
INC_Reported_Date,
TASK_id,
TASK_Assigneee,
TASK_Status, -- Staged 1000, Assigned 2000, Pending 3000, Work In Progress 4000, Waiting 5000, Closed 6000, ByPassed 7000
Task_Status2,
-- Set RAG column to RAG is not closed
case WHEN TASK_Status = 6000 THEN "N/A - Task is Closed"
WHEN Task_Days_Due <= 0 THEN 'Red'
WHEN Task_Days_Due > 0 and Task_Days_Due <= 7 THEN 'Amber'
WHEN Task_Days_Due > 7 THEN 'Green'
WHEN Task_Days_Due is NULL THEN 'No Task End Date'
end as Red_Amber_Green,
decode(task_status2, 'Closed', 'N/A - Task is Closed', cast(task_days_due as STRING)) as task_days_due
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.