SQL Server 2008 Сценарий для начинающих Вопрос об использовании всех строк - PullRequest
2 голосов
/ 04 мая 2011

Я использую SQL Server 2008 и у меня есть небольшой скрипт для разделения строки данных на несколько разных столбцов. У меня вопрос, как мне заставить скрипт воздействовать на все строки в столбце? Прямо сейчас строка данных - это просто строковый литерал. Мне интересно, есть ли другой способ исправить это, чтобы мне не приходилось постоянно заменять строку DATA ROW EXAMPLE данными каждой строки. Сценарий ниже.

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 Ответ

1 голос
/ 04 мая 2011

Я предполагаю, что ниже таблица с исходными данными называется 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...