2017-07-13 7 views
1

私たちはLMSのリンクからアクセスする学生に外部クイズツールを使用しています。彼らがリンクをクリックすると、StudentID、CourseID、ModuleIDなどのパラメータを渡すことができます。クイズツールを使用すると、この変数を1列に記録できるため、034-23-12またはStudent034-Course23-Module12などのようになります別々の列にデータを分割する式

Zapierを使用すると、結果がMSSQLデータベースに追加され、結果が学生アカウントに表示されます。

しかし、作るために、我々は3列に単一列レコードを分割できるようにする必要があり、この作品 - StudentID、CourseIDとModuleIDは

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

この式でのすべてのヘルプははるかに高く評価されます。複数の1つの列を分割する

答えて

1

あなたが4(以下)分割を持っているとして、あなたは 'parsename' を使用することができます

@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) 
+0

ありがとうJFは完璧に動作しました – gillers322

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 
+0

ありがとうSrini – gillers322

関連する問題