2011-05-04 38 views
2

我正在使用SQL Server 2008,我有一個小腳本將一行數據分成幾個不同的列。我的問題是如何讓腳本影響列中的所有行?現在數據行只是一個字符串文字。我想知道是否有另一種方法來解決這個問題,所以我不必一直使用每行數據替換DATA ROW EXAMPLE行。腳本如下。SQL Server 2008初學者腳本問題關於影響所有行

DECLARE @TEXTINPUT VARCHAR(120) 

SET @TEXTINPUT = 'DATA ROW EXAMPLE 12 89564 DATA ROW EXAMPLE' 

SELECT @TEXTINPUT AS TEXTINPUT 

SELECT SUBSTRING(@TEXTINPUT,1,4) AS UNIT, 
    SUBSTRING(@TEXTINPUT,6,3) AS NAME, 
    SUBSTRING(@TEXTINPUT,10,7) AS ACCOUNT, 
    SUBSTRING(@TEXTINPUT,18,2) AS NOTE 


INSERT INTO ExampleTable 
(UNIT, NAME, ACCOUNT, NOTE) 
VALUES (SUBSTRING(@TEXTINPUT,1,4), SUBSTRING(@TEXTINPUT,6,3), SUBSTRING(@TEXTINPUT,10,7), 
SUBSTRING(@TEXTINPUT,18,2)) 
GO 

回答

1

我承擔與源數據見下表被稱爲SourceTable,你是分裂的列被稱爲SourceCol

INSERT INTO ExampleTable 
(UNIT, NAME, ACCOUNT, NOTE) 
SELECT SUBSTRING(SourceCol,1,1) AS UNIT, 
    SUBSTRING(SourceCol,3,9) AS NAME, 
    SUBSTRING(SourceCol,13,6) AS ACCOUNT, 
    SUBSTRING(SourceCol,20,3) AS NOTE 
FROM SourceTable 
+0

你只要回答我愚蠢的問題。選擇,從,在哪裏,我必須記住這一點。謝謝! – 2boolORNOT2bool 2011-05-04 19:58:12

+0

是的,三個相當重要的子句! – 2011-05-04 20:00:26

+0

哈哈!是的,我覺得自己就像一顆神話! – 2boolORNOT2bool 2011-05-04 20:08:28