大家好,提前感謝您的幫助。
我已經設定了一個看起來像這樣的對應表
| 老的 | 新的 |
|---|---|
| 一種 | 乙 |
| 乙 | C |
| 一種 | D |
| C | D |
當然,這是一個狀態與另一個狀態在多個時間點的對應關系的日志。我試圖通過扁平化新舊之間的關系來將這些資料轉換為“可用格式”,以達到如下效果:
| 老的 | 新的 |
|---|---|
| 一種 | D |
| 乙 | D |
| C | D |
有誰知道如何在 SQL 中做這樣的事情?請記住,迭代可以運行 7 層深度。非常感謝你
uj5u.com熱心網友回復:
使用遞回 CTE:
WITH cte AS (
SELECT old, new, 1 level FROM tablename
UNION ALL
SELECT c.old, t.new, level 1
FROM tablename t INNER JOIN cte c
ON c.new = t.old
)
SELECT DISTINCT old,
FIRST_VALUE(new) OVER (PARTITION BY old ORDER BY level DESC) new
FROM cte
ORDER BY old;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480479.html
