使用Microsoft SQL Server 2019
因此,我已经从一个大的文本字段中解析出了几列,并且需要使用解析后的数据作为其他字段的乘数这是一个单独的解析列,主要用于上下文
SUBSTRING(curv.curv_data,
CHARINDEX('PctUsage', curv.curv_data, CHARINDEX('||1', curv.curv_data)) + 9,
(CHARINDEX(')())', curv.curv_data, CHARINDEX('PctUsage', curv.curv_data, CHARINDEX('||2', curv.curv_data))) - 9) - CHARINDEX('PctUsage', curv.curv_data, CHARINDEX('||1', curv.curv_data) + 9)) PctUsage1
这是输出。
PctUsage1 |
---|
5 |
3.5 |
0.5 |
6.5 |
5 |
9 |
1 |
1.3 |
1.5 |
25。 |
4 |
0.0 |
1.2 |
好吧,我想我有一个解决方案,很抱歉你们给我带来了麻烦。我想写下我的问题真的帮助我解决了它。最后一个问题是确保我的乘数是正确的,因为我必须将CHARDINDEX与嵌入的case语句一起使用
case when try_cast(PctUsage1 as int) is null then case when CHARINDEX('.',PctUsage1) = 3 then cast(replace(PctUsage1, '.','') as Decimal(5,2))/100 when CHARINDEX('.',PctUsage1) = 2 then cast(replace(PctUsage1, '.','') as Decimal(5,2))/1000 end else try_cast(PctUsage1 as decimal(5,2))/100 end PctUsage1_converted,