Tsql 从单元格表重建电子表格行的sql查询

Tsql 从单元格表重建电子表格行的sql查询,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,我从google文档中提取了一组非结构化的电子表格,并将它们加载到具有以下结构的数据库中进行进一步分析 我的目标是从如下所示的行开始: SpreadsheetTitle WorksheetTitle Row Column Value Copy of updated accounting backup (a-e) Accuquote 3 1 September 2005 Copy of updated accounting backup (a-e) Accuquote 5 2

我从google文档中提取了一组非结构化的电子表格,并将它们加载到具有以下结构的数据库中进行进一步分析

我的目标是从如下所示的行开始:

SpreadsheetTitle WorksheetTitle Row Column Value
Copy of updated accounting backup (a-e) Accuquote   3   1   September 2005
Copy of updated accounting backup (a-e) Accuquote   5   2   Rate 
Copy of updated accounting backup (a-e) Accuquote   5   3   # of Sales
Copy of updated accounting backup (a-e) Accuquote   5   4   Total Spent
Copy of updated accounting backup (a-e) Accuquote   6   1   Accuquote
Copy of updated accounting backup (a-e) Accuquote   6   2   $70
Copy of updated accounting backup (a-e) Accuquote   6   3   45
Copy of updated accounting backup (a-e) Accuquote   6   4   $3150
Copy of updated accounting backup (a-e) Accuquote   6   5   PAID
为此:

SpreadsheetTitle WorksheetTitle Row Column1 Column2 Column3.....etc...etc..
我可以想办法继续写非sql代码,但我很好奇是否可以使用递归查询(可能)或pivot函数。

我不是pivot专家:

但你会喜欢这项工作吗

SELECT  SpreadsheetTitle,
        WorksheetTitle,
        row,
        [1] AS Col1,
        [2] AS Col2
FROM    ( SELECT    'spreadsheet' SpreadsheetTitle, 'worksheet' WorksheetTitle, 0 Row, 1 AS [ColumnID], 1 VALUE 
          UNION ALL
          SELECT    'spreadsheet' SpreadsheetTitle, 'worksheet' WorksheetTitle, 0 Row, 2 AS [ColumnID], 2 VALUE 
          UNION ALL
          SELECT    'spreadsheet2' SpreadsheetTitle, 'worksheet' WorksheetTitle, 0 Row, 1 AS [ColumnID], 3 VALUE 
        ) AS flat PIVOT
    ( MAX(Value) FOR [ColumnID] IN ( [1], [2] ) ) AS pivoted