2011-05-04 3 views
2

J'utilise SQL Server 2008 et j'ai un petit script pour diviser une ligne de données en plusieurs colonnes différentes. Ma question est comment puis-je obtenir le script pour effectuer toutes les lignes dans la colonne? À l'heure actuelle, la ligne de données est juste un littéral de chaîne. Je me demande s'il y a une autre façon d'écrire cela, donc je n'ai pas besoin de continuer à remplacer la ligne DATA ROW EXAMPLE avec chaque ligne de données. Le script est ci-dessous.SQL Server 2008 Débutant Script Question J'effectue toutes les lignes

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 

Répondre

1

Je suppose en dessous du tableau des données source est appelée SourceTable et la colonne que vous fractionnez est appelé 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

Vous venez de répondre à ma question stupide. Sélectionnez, De, Où, je dois m'en souvenir. Je vous remercie! – 2boolORNOT2bool

+0

Oui, trois clauses assez vitales! –

+0

LOL! Oui, je me sens comme un morron! – 2boolORNOT2bool