下面的原始代码不会填充dx.ThirdDiagnosisCode。我需要从dx.AllDiagnosisCodes中获取第三个dx代码。SQL SSM 2012分开逗号然后转向列
SELECT
txn.TransactionID
,dx.DiagnosisPrimaryCodeset
,dx.AllDiagnosisCodes
,dx.PrimaryDiagnosisCode
,dx.SecondDiagnosisCode
,dx.ThirdDiagnosisCode
,dx.FourthDiagnosisCode
,dx.FifthDiagnosisCode
,dx.SixthDiagnosisCode
,dx.SeventhDiagnosisCode
,dx.EighthDiagnosisCode
,dx.NinthDiagnosisCode
,dx.TenthDiagnosisCode
,dx.EleventhDiagnosisCode
,dx.TwelfthDiagnosisCode
INTO #TMP_1
FROM txn
INNER JOIN dx ON txn.SourceID = dx.SourceID
的dx.AllDiagnosisCodes列包含以下信息:
AllDiagnosisCodes
162.5,511.9,
427.89,414.00,272.4,162.9,
有没有办法通过逗号,分裂代码然后piviot的infomration以下列在原来的代码?什么我正在寻找
,dx.PrimaryDiagnosisCode
,dx.SecondDiagnosisCode
,dx.ThirdDiagnosisCode
,dx.FourthDiagnosisCode
,dx.FifthDiagnosisCode
,dx.SixthDiagnosisCode
,dx.SeventhDiagnosisCode
,dx.EighthDiagnosisCode
,dx.NinthDiagnosisCode
,dx.TenthDiagnosisCode
,dx.EleventhDiagnosisCode
,dx.TwelfthDiagnosisCode
例子:
1dx 2dx 3dx 4dx
162.5 511.9
427.89 414.00 72.4 162.9
我目前在这里与此代码到目前为止卡住。
SELECT A.[DiagnosisPrimaryCodeset],
Split.a.value('.', 'VARCHAR(100)') AS String
FROM (
SELECT [DiagnosisPrimaryCodeset],
CAST ('<M>' + REPLACE([AllDiagnosisCodes], ',', '</M><M>') + '</M>' AS XML) AS String
FROM dx
) AS A
CROSS APPLY String.nodes ('/M') AS Split(a);
这是SQL Server 2012的问题?你应该适当地标记。 –
通过在Google中输入“SQL拆分逗号分隔字符串到列”,您将获得很多提示。 https://www.google.ca/search?q=sql+split+comma+separated+string+into+columns&oq=SQL+Split+com&aqs=chrome.4.69i57j69i60j0l4.7256j0j7&sourceid=chrome&ie=UTF-8 – BobNoobGuy