sqlserver取一段字符,sql取指定字符前的字符串

sqlserver中如何进行截取字符串然后再计算?

oracle中的方法可以这样,但是不知道sql server中支不支持相应的函数,你可以试一下

成都创新互联是一家专业提供巴南企业网站建设,专注与网站设计、成都网站建设、H5场景定制、小程序制作等业务。10年已为巴南众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

select replace(t.number,'m','') num from table1 t //去掉m 变成100*200但是这是varchar类型不是数字

(1)instr(replace(t.number,'m',''),'*',1) 从100*200的第1位截取到 '*' 的长度,注:这时是长度,不是数字100

substr(num,1,instr(replace(t.number,'m',''),'*',1)-1) 从第一位截取到'*'之前,即取出100

(2)instr(replace(t.number,'m',''),'*',-1) 从100*200的最后1位截取到 '*' 的长度

substr(num,-1,instr(replace(t.number,'m',''),'*',-1)-1) 取出200

然后(1)*(2)就可以了(把substr里面的num换成 replace(t.number,'m',''))

思路就这样,你再整理一下就可以了

【搬运】Sql Server中截取字符串的常用方法

1、LEFT()  从左边截

语法:LEFT(character,integer)    返回 从字符串左边开始 指定个数的字符

说明:参数1:要截取的字符串,参数2:截取字符个数

示例:selectLEFT('SqlServer_2008',3)

结果:Sql

2.RIGHT()  从右边截

语法:RIGHT(character,integer)   返回 从字符串右边开始 指定个数的字符

说明:参数1:要截取的字符串,参数2:截取字符个数

示例:selectLEFT('SqlServer_2008',4)

结果:2008

3.SUBSTRING()   中间截

语法:SUBSTRING(character,start,length)   返回从字符串 中间 的字符

说明:参数1:要截取的字符串,参数2:开始截取的位数,参数3:要截取的字符长度

示例:selectSUBSTRING('SqlServer_2008',4,6)--4)

结果:Server

以上。

感谢二位!

sqlserver 字符截取、查找

返回字符串在表达式expression里第一次出现的位置,起始值从1开始算,没找就返回0

描述一下此函数的具体用法:

'%pattern%' 的用法类似于 like '%pattern%' 的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。

查找pattern的结束所在expression的位置,也就是从后面匹配起查找。

查询pattern首次出现的位置。

返回0,开头找不到就返回0,后面无论有多少都不管。

这就相当于精确匹配查找,也就是pattern,expression完全相等。

[] 是指定某些特殊的字符。

[^] 除[]之外的字符串。

sql语句,能够截取指定字段后面的一个字符串吗?

可以的,需要用到charindex函数和substring函数。

CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。

substring

public String substring(int beginIndex)

返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。

扩展资料:

javascript示例

1 scripttype="text/javascript"

2 var str="Helloworld!"

3 document.write(str.substring(1,3));4 /script

上面返回字符串:"el";

str.substring(1,2) //返回e

str.substring(1) //返回"elloworld";

还有此函数中会出现奇怪的现象,当出现str.substring(5,0);

这又是怎么回事,不过返回的是"Hello",

str.substring(5,1) //返回"ello",截去了第一位,返回余下的.

可见substring(start,end),可以有不同的说明,即start可以是要返回的长度,end是所要去掉的多少个字符(从首位开始).

在JS中,substr(start,length),用得较方便.

CustomName包含客户的First Name和Last Name,它们之间被一个空格隔开。我们用CHARINDX函数确定两个名字中间空格的位置。通过这个方法,我们可以分析ContactName列的空格位置,这样可以只显示这个列的last name部分。

select top 5 substring(ContactName,charindex(' ',ContactName)+1,len(ContactName)) as [Last Name] from customers

CHARINDEX函数找到First Name和Last Name之间的空格,所以SUBSTRING函数可以分开ContactName列,这样就只有Last Name被选出。在CHARINDEX函数返回的整数上加1,这样Last Name不是从空格开始。

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

百度百科-substring

sql中where截取字符串字符

不管哪个库,sql中一般都支持substring 或者它的变种 substr left right mid等


分享标题:sqlserver取一段字符,sql取指定字符前的字符串
分享URL:http://pwwzsj.com/article/hdoiic.html