我需要選擇一個表列值和一些常量變量。例如,用常量變量選擇查詢
SQL表:
Key KeyName
-------------
1 Normal
2 Basic
3 Super
恆值是R1,R2,R3,R4。
輸出結果作爲單柱:
Normal R1
Normal R2
Normal R3
Normal R4
Basic R1
Basic R2
.
.
.
Super R4
欣賞任何建議。謝謝。
我需要選擇一個表列值和一些常量變量。例如,用常量變量選擇查詢
SQL表:
Key KeyName
-------------
1 Normal
2 Basic
3 Super
恆值是R1,R2,R3,R4。
輸出結果作爲單柱:
Normal R1
Normal R2
Normal R3
Normal R4
Basic R1
Basic R2
.
.
.
Super R4
欣賞任何建議。謝謝。
試試這個:
SELECT
T.KeyName,
TT.ConstValues
FROM Tbl T
CROSS JOIN
(VALUES ('R1'), ('R2'), ('R3'), ('R4')) TT(ConstValues)
謝謝,哈姆雷特。這正是我想要的。週末愉快! – Amy
SELECT KeyName, Value = CASE WHEN [number] = 1 THEN 'R1'
WHEN [number] = 2 THEN 'R2'
WHEN [number] = 3 THEN 'R3'
WHEN [number] = 4 THEN 'R4'
ELSE ''
END
FROM (SELECT KeyName, ROW_NUMBER OVER (PARTITION BY KeyName
ORDER BY KeyName) AS [number]
FROM MyTable) A
您需要將常數值表示爲結果集,然後通過從中選擇兩個值來獲得笛卡爾乘積。例如:
WITH ConstantValues AS
(
SELECT 'R1' AS ConstantValue
UNION ALL
SELECT 'R2'
UNION ALL
SELECT 'R3'
UNION ALL
SELECT 'R4'
)
SELECT t.KeyName, c.ConstantValue
FROM SqlTable t, ConstantValues c;
如果你想每對要表示成一個結果,那麼你可以使用SELECT t.KeyName + ' ' + c.ConstantValue AS ResultColumn
代替。
謝謝,馬克。它按預期工作。非常感謝。週末愉快! – Amy
它是如何與'vb.net'有關?另外,解釋SQL Server的版本。 –
我們錯過了一些信息...「R#」意味着它們是什麼類型的索引?如果它只是一些變量,以某種方式追加它。 – Plutonix