如果我有這樣的 SQL 查詢:
SELECT A.W, A.X, B.Y, B.Z
FROM A
INNER JOIN B ON A.value1 = B.value2;
回傳這樣的一行:
W | X | Y | Z
--- --- --- --
w | x | y | z
有沒有辦法修改該陳述句,因此結果將類似于此表
W | X | Y1 | Y2 | Z
--- --- ----- ----- ---
w | x | y 0 | y 1 | z
w | x | y 2 | y 3 | z
w | x | y 4 | y 5 | z
w | x | y 6 | y 7 | z
w | x | y 8 | y 9 | z
其中Y1和Y2列是從原始y值派生的
uj5u.com熱心網友回復:
使用回傳整數 0、2、4、6 和 8 的 CTE 并將其交叉連接到您的查詢:
WITH cte(n) AS (VALUES (0), (2), (4), (6), (8))
SELECT A.W, A.X,
B.Y c.n AS Y1,
B.Y c.n 1 AS Y2,
B.Z
FROM A
LEFT JOIN B ON A.value1 = B.value2
CROSS JOIN cte AS c;
如果您想要一組動態整數,請使用遞回 CTE:
WITH cte(n) AS (
SELECT 0 FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT n 2
FROM cte
WHERE n < 8 -- change 8 to the number that you want
)
SELECT A.W, A.X,
B.Y c.n AS Y1,
B.Y c.n 1 AS Y2,
B.Z
FROM A
LEFT JOIN B ON A.value1 = B.value2
CROSS JOIN cte AS c;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482543.html
