Разделение данных в отдельную формулу столбцов
Мы используем инструмент внешней викторины для студентов, к которым они обращаются по ссылке в нашей 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