2017-06-21 127 views
0

例如:如何在SQL中將1行數據拆分成多行?

輸入:

column1 column2 
10:00am 11:00am 

我必須得到像下面的輸出

OUTPUT:

column1 column2 
10:00am 10:15am 
10:16am 10:20am 
10:21am 10:30am 
10:31am 10:40am 
10:41am 10:50am 
10:51am 11:00am 
+2

你使用哪些DBMS? – Jens

+0

請說明如何計算其餘數據 – Dimgold

+0

本文詳細解釋你,更願意爲將來的使用創建一個函數https://stackoverflow.com/questions/5123585/how-to-split-a-single-column -values-to-multiple-column-values –

回答

-1

您可以使用(SELECT column1 FROM db) UNION (SELECT columns2 FROM db)

1

您的預計產量並非全部清楚...

你的第一個intervall是15分鐘,其餘的是10分鐘。

,您可以嘗試這樣的(這是嚴格 - 10分鐘SQL Server語法):

DECLARE @Start TIME='10:00'; 
DECLARE @End TIME='11:30'; 
DECLARE @minuteIncrement INT=10; 

WITH Tally AS 
(
    SELECT TOP ((DATEDIFF(MINUTE,CAST(@Start AS DATETIME),CAST(@End AS DATETIME)))/@minuteIncrement) (ROW_NUMBER() OVER(ORDER BY (SELECT NULL))-1) * @minuteIncrement AS Nr 
    FROM master..spt_values 
) 
SELECT CAST(DATEADD(MINUTE,Nr+1,@Start) AS TIME) AS column1 
     ,CAST(DATEADD(MINUTE,[email protected],@Start) AS TIME) AS column2 
FROM Tally; 

如果你真的需要第一INTERVALL不同,你必須與第一開始計算值嚴格intervall並添加第一步與UNION ALL ...