ここに行く:
-- Defining your string
DECLARE @string varchar(max)
SET @string = 'Consolidation CompletedThe Scenario is LDP; the Year is 2018; the Start Period is July; the End Period is June; the Entity is TOT_NEWS.'
;with pos as (
SELECT
@string as String
,CHARINDEX(';', @string, 1) as Pos_1
,CHARINDEX(';', @string, CHARINDEX(';', @string, 1)+1) as Pos_2
,CHARINDEX(';', @string, CHARINDEX(';', @string, CHARINDEX(';', @string, 1)+1)+1) as Pos_3
,CHARINDEX(';', @string, CHARINDEX(';', @string, CHARINDEX(';', @string, CHARINDEX(';', @string, 1)+1)+1)+1) as Pos_4
) , txt as (
select
String
,substring(String, 1,Pos_1-1) as String_1
,substring(String,Pos_1+1,Pos_2-Pos_1-1) as String_2
,substring(String,Pos_2+1,Pos_3-Pos_2-1) as String_3
,substring(String,Pos_3+1,Pos_4-Pos_3-1) as String_4
,substring(String,Pos_4+1,LEN(String)-Pos_4-1) as String_5
from pos
)
SELECT
string
,substring(String_1,len(String_1)-charindex(' ',reverse(String_1),1)+1,charindex(' ',reverse(String_1))) as Result_1
,substring(String_2,len(String_2)-charindex(' ',reverse(String_2),1)+1,charindex(' ',reverse(String_2))) as Result_2
,substring(String_3,len(String_3)-charindex(' ',reverse(String_3),1)+1,charindex(' ',reverse(String_3))) as Result_3
,substring(String_4,len(String_4)-charindex(' ',reverse(String_4),1)+1,charindex(' ',reverse(String_4))) as Result_4
,substring(String_5,len(String_5)-charindex(' ',reverse(String_5),1)+1,charindex(' ',reverse(String_5))) as Result_5
from txt
出力:
string | Result_1 | Result_2 | Result_3 | Result_4 | Result_5
----------------------------------------------------------------------------------------------------------------------------------------|-----------|----------|----------|----------|---------
Consolidation CompletedThe Scenario is LDP; the Year is 2018; the Start Period is July; the End Period is June; the Entity is TOT_NEWS. | LDP | 2018 | July | June | TOT_NEWS
固定数のセミコロンはありますか? – Lamak
SQLは本当にこれに使用する必要がありますか? – TZHX
@Lamakはい、いつも同じ番号です。 –