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;
我有以下数据集:
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;