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

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

Преобразование нескольких записей в один столбец

Как свести к минимуму или сообщить пользователям о задержке / сбое подключения к базе данных?

Базы данных MSSQLLOCALDB не указаны

Заполнение 6-го столбца на основе предыдущих 5 значений столбца

Динамический TSQL в безопасном контексте

IndexOutOfRangeException SqlDataReader чтение значения bool из таблицы

Подключение к базе данных из раздела Web.Config <appSettings> C # / MVC

Внешний ключ для нескольких таблиц

unodeded Count (*) vs Системные таблицы

Sql Server Reporting выводит строки вывода

sql 2005 – nvarchar (max) – Невозможно создать строку размером 8064, которая больше допустимого максимума 8060

Получение нескольких строк в SQL Server, но четкая фильтрация только на одном

SQL Server XQuery – работает только с объявлением пространства имен

3-стороннее соединение с подзапросами и множественное предложение where

Как объявить переменную в операторе обновления sql

Давайте будем гением компьютера.