代码之家  ›  专栏  ›  技术社区  ›  Imran Hemani

Oracle sql-更新案例

  •  0
  • Imran Hemani  · 技术社区  · 3 年前

    我有以下数据集:

    ITEM       | LOCATION   |  STATUS 
    iPhone 13  |  10000     |  Inctive
    iPhone 13  |  20000     |  Active
    iPhone 12  |  20000     |  Inactive
    iPhone 11  |  10000     |  Active
    

    我首先想查看位置:10000,状态如何,然后获取。 如果位置:10000的记录不存在,它应该检查位置:20000

    结果就是

    **ITEM       | STATUS** 
    iPhone 13    | Inctive
    iPhone 12    | Inactive
    iPhone 11    | Active
    

    怎么做?

    1 回复  |  直到 3 年前
        1
  •  2
  •   Tim Biegeleisen    3 年前

    假设你只是想 看法 ROW_NUMBER 查询:

    WITH cte AS (
        SELECT t.*, ROW_NUMBER() OVER (PARTITION BY ITEM ORDER BY STATUS DESC) rn
        FROM yourTable t
    )
    
    SELECT ITEM, LOCATION, STATUS
    FROM cte
    WHERE rn = 1;