我们正在为学生使用外部测验工具,他们可以通过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
非常感谢您对此公式的任何帮助。
答案 0 :(得分:1)
您可以使用'parsename',因为您有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)
答案 1 :(得分:0)
样本数据
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