我有下表作为示例值:
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
我注意到数据中的每个编号点前面都有两个空格。您可以利用这一事实来发挥自己的优势:
select value
from T
cross apply String_Split(Replace(COl1, ' ','~'), '~');
参见示例