Разделение данных в отдельную формулу столбцов

Мы используем инструмент внешней викторины для студентов, к которым они обращаются по ссылке в нашей LMS. Когда они нажимают на ссылку, мы можем передавать параметры для StudentID, CourseID, ModuleID и т. Д. Инструмент викторины позволяет нам записывать эту переменную в один столбец, чтобы он мог выглядеть как 034-23-12 или Student034-Course23-Module12 и т. Д.

Используя Zapier, мы можем получить результаты, добавленные в нашу базу данных MSSQL, а затем результаты могут появиться в учетной записи студента.

Однако для выполнения этой работы нам нужно иметь возможность разделить запись одного столбца на 3 столбца – StudentID, CourseID и ModuleID

QuizRecord StudentID CourseID ModuleID 034-23-12 34 23 12 

Любая помощь с этой формулой будет высоко оценена.

Вы можете использовать 'parseame', поскольку у вас есть 4 (или меньше) раскола

Объявить @data varchar (20)

 Set @data='034-23-12' Select parsename(replace(@data,'-','.'),1), parsename(replace(@data,'-','.'),2), parsename(replace(@data,'-','.'),3), parsename(replace(@data,'-','.'),4) 

Пример данных

  DECLARE @Table TABLE (QuizRecord varchar(100)) INSERT INTO @Table SELECT '034-23-12' UNION ALL SELECT '035-24-13' UNION ALL SELECT '036-25-14' 

Запрос разбиения одного столбца на несколько

 SELECT * ,REPLACE(SUBSTRING(QuizRecord, 0, CHARINDEX('-', QuizRecord)), 0, '') AS StudentID ,REPLACE(SUBSTRING(QuizRecord, CHARINDEX('-', QuizRecord), CHARINDEX('-', QuizRecord)), '-', '') AS CourseID ,REVERSE(SUBSTRING(REVERSE(QuizRecord), 0, CHARINDEX('-', REVERSE(QuizRecord)))) AS ModuleID FROM @Table 

результат

 QuizRecord StudentID CourseID ModuleID -------------------------------------------- 034-23-12 34 23 12 035-24-13 35 24 13 036-25-14 36 25 14 
Давайте будем гением компьютера.