繁体   English   中英

SQL 根据另一个 Columns 值更新 Select Statement 列,但前提是满足条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM