在 SQL Server 中分割字符串

问题描述 投票:0回答:1

我有下表作为示例值:

CREATE TABLE #T(COl1 VARCHAR(MAX))
INSERT INTO #T VALUES('1) Elevated BMI  2) Elevated cholesterol  3) Deficient vitamin D level  4) No structured exercise  5) Elevated alcohol intake with mild fatty liver infiltration.  6) Elevated CK, Ferritin and high-sensitive CRP  7) Suboptimal blood glucose')

select * From #T

我希望输出作为单独的行显示在下面,如何编写查询?

Elevated BMI
Elevated cholesterol
Deficient vitamin D level
No structured exercise
Elevated alcohol intake with mild fatty liver infiltration.
Elevated CK, Ferritin and high-sensitive CRP
Suboptimal blood glucose

以下是我能够实现的目标:

select value From #T
CROSS APPLY STRING_SPLIT(COl1, ')')

1
 Elevated BMI  2
 Elevated cholesterol  3
 Deficient vitamin D level  4
 No structured exercise  5
 Elevated alcohol intake with mild fatty liver infiltration.  6
 Elevated CK, Ferritin and high-sensitive CRP  7
 Suboptimal blood glucose
sql-server split
1个回答
0
投票

我注意到数据中的每个编号点前面都有两个空格。您可以利用这一事实来发挥自己的优势:

select value
from T
cross apply String_Split(Replace(COl1, '  ','~'), '~');

参见示例

© www.soinside.com 2019 - 2024. All rights reserved.