2
是否有更好(更高效)的方式來編寫此查詢?似乎應該有一種方法可以只寫一個UNION
。用多個UNION重寫SQL Server查詢
查詢:
SELECT 'Value1' as PropertyKey, PropertyValue=(SELECT Value1 FROM MyTable WITH (NOLOCK))
UNION
SELECT 'Value2' as PropertyKey, PropertyValue=(SELECT Value2 FROM MyTable WITH (NOLOCK))
UNION
SELECT 'Value3' as PropertyKey, PropertyValue=(SELECT Value3 FROM MyTable WITH (NOLOCK))
UNION
...
SELECT 'Value100' as PropertyKey, PropertyValue=(SELECT Value100 FROM MyTable WITH (NOLOCK))
最後,我需要我的結果集有2列(PropertyKey
和PropertyValue
)。 PropertyKey
列中的值將是我表格中列的名稱,而PropertyValue
列中的值將是相應的值。
如果我總是從同一張表中選擇,是否可以僅使用一個UNION
來編寫此代碼?
感謝您的答覆!如果我沒有名爲PropertyKey和PropertyValue的列,unpivot示例是否工作?這些不是我實際的列名,但我需要他們以這種方式返回。例如,我的結果集將包含一個名爲PropertyKey的列,其中的所有記錄都會將我的實際列名作爲PropertyKey列中的值返回。希望這是有道理的。 – lhan
@ lhan16「PropertyKey」將顯示列的名稱,「PropertyValue」將具有每列的值。 – Taryn
謝謝。我收到的錯誤說「列'Value1'的類型與UNPIVOT列表中指定的其他列的類型衝突。」如果我的列類型不同,是否需要進行任何類型的投射? – lhan