Tsql 从单元格表重建电子表格行的sql查询
我从google文档中提取了一组非结构化的电子表格,并将它们加载到具有以下结构的数据库中进行进一步分析 我的目标是从如下所示的行开始: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
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