带有 IF 条件的 SQL CASE 语句

时间:2021-04-16 12:32:21

标签: sql postgresql

我有以下 CASE 语句。它根据 CASE 语句计算日期。如果它要为记录提供一个低于它提供上一条记录的日期的日期,我如何让它跳过记录?

SELECT
        CASE
          -- If there is a already a date, use it
          WHEN LENGTH(DT) = 8 THEN DT::DATE

          WHEN '2019Q1' >= '2018Q1'
            --There are some additional conditions that are in this THEN statement. For simplicity sake, I have removed them. 
            THEN THRU_DT::DATE - 30 
                 
          ELSE THRU_DT::DATE
        END AS DT
FROM table;

输入 -

patient_num    dt             claim_no 
232                           2423
232                           3323

输出 -

patient_num    dt             claim_no 
232            2018-08-01     2423
232            2018-07-01     3323

预期输出

patient_num    dt             claim_no 
232            2018-08-01     2423
232                           3323

我不希望为第二条记录指定日期,因为该日期小于为第一条记录指定的日期。

请注意,一个特定的患者可以有多个记录。我仅使用上面的两条记录来展示我所期望的示例。

0 个答案:

没有答案