关于sqlServer2005数据库字符串的截取?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于sqlServer2005数据库字符串的截取?相关的知识,希望对你有一定的参考价值。

要求在sql语句查询的过程中截取这么一段话“正确率为65.00%”、“正确率为100.00%”,得到结果为:65.00%或者65、100.00%或者100?
这是两种情况,“100.00%”,和“65.00% ”长度就不一样,怎样让它一次性截取好的方法?
"正确率为65.00%" 中“正确率为”是固定长度,sqlserver中有没有类似Remove这样的方法?

SELECT SUBSTRING('正确率为65.00%',PATINDEX('%[0-9]%','正确率为65.00%'),LEN('正确率为65.00%')-PATINDEX('%[0-9]%','正确率为65.00%')+1)
--65.00%
SELECT PARSENAME((SUBSTRING('正确率为65.00%',PATINDEX('%[0-9]%','正确率为65.00%'),LEN('正确率为65.00%')-PATINDEX('%[0-9]%','正确率为65.00%')+1)),2)
--65
参考技术A select replace('正确率为65.00%','正确率为',' ') 试试追问

这个可以取到结果“65.00%”,但是我的sql最后要进行统计求平均数呢,而且这个字段是varchar类型的,还要转化类型呢。

追答

select left (replace('正确率为65.00%','正确率为',' '),3)

追问

select left (replace('正确率为65.00%','正确率为',' '),3)
这样的话出来的结果不就是“65.”后面还有个“.“呢,只有100.00% 才能出结果100

sqlserver 按分隔符截取字符串

参考技术A

可以参考下面的代码:

select substring('ADFASDFD(DASFADSFAS)',1,charindex('(','ADFASDFD(DASFADSFAS)')-1)

主要用到两个函数,一个charindex,这个是判断指定字符位置的函数。

另一个是substring,这个是截取字符串的函数。

扩展资料:

sqlserver参考函数

upper(char_expr) 转为大写

lower(char_expr) 转为小写

space(int_expr) 生成int_expr个空格

reverse(char_expr) 反转字符串

stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从

参考资料来源:百度百科-SqlServer

以上是关于关于sqlServer2005数据库字符串的截取?的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 字符串截取

sqlserver截取日期的年份和月份

sqlserver:如何截取字符串后联合查询出数据

关于SQLserver 存储过程 如何切割一个字符串 转化为数组

如何查SQLSERVER2005的版本

SqlServer 2005升级至SqlServer 2008 解析Json 字符集问题