我有一個紀錄:轉換記錄的每一列到單獨的記錄
DECLARE @Tbl AS TABLE(Col1 VARCHAR(10), Col2 VARCHAR(10), Col3 VARCHAR(10));
INSERT INTO @Tbl
VALUES('Val1', 'Val2', 'Val3')
-- Source Record
SELECT Col1, Col2, Col3 FROM @Tbl
結果:VAL1 VAL2 VAL3
我想每列作爲單獨的兩列的記錄,如第一列將成爲結果源列和第二列的標題應源列的像在我所通過UNION ALL
獲得的結果如下查詢的結果的值:
--Query for Target Result
SELECT 'Col1' AttributeTitle, CONVERT(VARCHAR, Col1) AttributeValue FROM @Tbl
UNION ALL SELECT 'Col2' AttributeTitle, CONVERT(VARCHAR, Col2) AttributeValue FROM @Tbl
UNION ALL SELECT 'Col3' AttributeTitle, CONVERT(VARCHAR, Col3) AttributeValue FROM @Tbl
這個查詢中的問題是我必須明確定義列,有沒有什麼方法可以動態地獲取列名和它們的值?
有沒有簡單的方法。您可以使用模式視圖來編寫動態sql。或者可能是一個UNPIVOT。 –
請讓我知道如何使用模式視圖爲此目的編寫動態SQL? – Shehzad