修剪一个字段的字符串中的字符,并为SQL表中的每个记录填充一个新字段

时间:2015-11-15 21:19:54

标签: sql-server

我在现有的表“OS1115”中添加了一个新字段“StrikePrice”。 我需要修剪现有字段“symbol”中的一些字符并将其输入到新字段中。 我知道我可以这样做:

UPDATE OS1115 SET StrikePrice = RIGHT(symbol, 4)

但问题是我需要的字符数量在长度上有所不同,但总是被P或C取代。 以下是几个例子:

QQQ_112015C112.5
PCLN_112015P1287.5
NFLX_112015P107

我需要修剪P或C之后的字符串末尾的数字,然后在新字段中输入。 所以在这种情况下会导致: 112.5 1287.5 107 我怎样才能做到这一点? 我使用MS SQL Express 2012

2 个答案:

答案 0 :(得分:0)

这样可行:

RIGHT(symbol, PATINDEX('%[cp]%', REVERSE(symbol))-1)

虽然我确定有多种方法可以做到。

答案 1 :(得分:0)

我在测试我的时候得到了一个答案。这是另一种方式:

子(StrikePrice,CHARINDEX( 'C',StrikePrice,6)+ CHARINDEX( 'P',StrikePrice,6)+1,99)