2015-12-29 69 views
1

我可以知道如何將此查詢的結果輸出爲此格式?將列轉換爲SQL Server 2012中的行

查詢

Select * 
from sys.databases 
where name = 'your_db_name' 

原始輸出:

name databaseid source_database_id owner_sid 
xxx xxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxx 

所需的輸出:

Parameter   Value 
name    xxxxx 
databaseid   xxxxx 
source_database_id xxxxxx 
owner_sid   xxxxxx 

回答

2

使用Cross ApplyTable valued constructor到unpivot的數據

SELECT Parameter, 
     Value 
FROM yourtable 
     CROSS apply (VALUES ('name',name), 
          ('databaseid',Cast(databaseid AS VARCHAR(100))), 
          ('source_database_id',Cast(source_database_id AS VARCHAR(100))), 
          ('owner_sid',Cast(owner_sid AS VARCHAR(100))))cs(Parameter, Value) 

注意:如果沒有,您可能會使用動態代碼。的列是未知的

+0

你可能想'CAST'將'Value'設置爲'VARCHAR'。 –

+0

@FelixPamittan - 是的,沒有檢查名稱列 –

+0

謝謝!!!!!!!!!!!!!! – user664481