Oracle sql - 更新案例

Oracle sql - update case

我有以下数据集:

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

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

结果会是

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

怎么做?

假设您只想查看您的数据,这是一个基本的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;