2015-12-29 2 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 Apply и Table 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

Смежные вопросы