簡體   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