对于SQL Server中的数据库,我有一列的数据看起来像这样
Severity
10006=0;10007=2;10008=5;10009=1;
10006=0;10007=1;10008=6;10009=0;
10006=0;10007=3;10008=5;10009=1;
有没有办法创建一个我可以选择columnName的函数。并使输出与此结果匹配。
critical Major Minor Trivial
--------------------------------
0 2 5 1
0 1 6 0
0 3 5 1
答案 0 :(得分:2)
这适用于数据
with t as (
select '10006=0;10007=2;10008=5;10009=1;' as col union
select '10006=0;10007=1;10008=6;10009=0;' union
select '10006=0;10007=3;10008=5;10009=1;')
select substring(col,patindex('%10006=[0-9];%',col)+6,1) as critical,
substring(col,patindex('%10007=[0-9];%',col)+6,1) as major,
substring(col,patindex('%10008=[0-9];%',col)+6,1) as minor,
substring(col,patindex('%10009=[0-9];%',col)+6,1) as trivial
from t