我有一个存储过程,总是返回一行。我想将每个column_name及其对应的值转换为一行。例子
ID | Name | Address ----------------------- 1 | Jim | Home
应该变成
ID | 1 --------------------- Name | Jim Address | Home
我该怎么做呢 ?
您需要将存储过程中的值插入(临时)表中,然后从那里取消透视。伪代码如下:
CREATE TABLE #t (ID int, Name varchar(100), Address varchar(100)) INSERT INTO #t EXEC stored_proc SELECT ID = 'Name', [1] = Name FROM #t UNION ALL SELECT ID = 'Address', [1] = Address FROM #t DROP TABLE #t