2017-05-04 48 views
-2

我有以下格式的表:SQL表到SQL表

A    B  C  D 

Spoons  ID 
       38483 

Date   Amt  Value Type 
1/1/2017  2  12  Plastic 
1/2/2017  4  30  Silver 
1/3/2017  1  9  Wood 

我如何寫一個存儲過程,這將導致下表中?

Col1  Col2  Col3   Col4  Col5 
---------------------------------------------------- 
Spoons  38483  1/1/2017  2  Plastic 
Spoons  38483  1/2/2017  4  Silver 
Spoons  38483  1/3/2017  1  Wood 

注:我使用SQL Server 2016

+0

使用合適的軟件(MySQL,Oracle,DB2,...)和版本(例如, '的SQL服務器2014'。語法和功能的差異往往會影響答案。你有嘗試過什麼嗎?完成任何研究?使用閃亮的['create procedure'](https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-procedure-transact-sql)(假設SQL Server)?好奇你有一張表,幾乎看起來像電子表格。它有任何關聯的DDL嗎? – HABO

+1

是的,表格最初是一個電子表格,但在確定無法通過t-sql解析之後,我轉換爲csv(或者至少OPENROWSET和鏈接的服務器不受我使用的版本的支持。使用.net插入到sql表中我在Azure門戶中創建了服務器 – james5

+0

所以表定義爲'A VarChar(max),B VarChar(max),C VarChar(max),D VarChar(max)'with沒有訂單的行?也許[this](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)將提供一些指針 – HABO

回答

0

SELECT LEAD([A],1)OVER(ORDER BY [ID] ASC)作爲Col1中FROM表1 ---(注我增加了一個ID clmn)

SELECT TOP 1 LEAD([B],2)OVER(ORDER BY [ID] ASC)作爲col2的FROM表1

SELECT *其中ROWNUM> XX FROM表1

然後插入所有進入決賽桌...簡單的問題=簡單的答案。我只是比較新的SQL,所以我不能自己弄清楚。