oracle中的方法可以這樣,但是不知道sql server中支不支持相應(yīng)的函數(shù),你可以試一下
成都創(chuàng)新互聯(lián)是一家專業(yè)提供巴南企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為巴南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
select replace(t.number,'m','') num from table1 t //去掉m 變成100*200但是這是varchar類型不是數(shù)字
(1)instr(replace(t.number,'m',''),'*',1) 從100*200的第1位截取到 '*' 的長(zhǎng)度,注:這時(shí)是長(zhǎng)度,不是數(shù)字100
substr(num,1,instr(replace(t.number,'m',''),'*',1)-1) 從第一位截取到'*'之前,即取出100
(2)instr(replace(t.number,'m',''),'*',-1) 從100*200的最后1位截取到 '*' 的長(zhǎng)度
substr(num,-1,instr(replace(t.number,'m',''),'*',-1)-1) 取出200
然后(1)*(2)就可以了(把substr里面的num換成 replace(t.number,'m',''))
思路就這樣,你再整理一下就可以了
1、LEFT()? 從左邊截
語(yǔ)法:LEFT(character,integer)? ??返回 從字符串左邊開始 指定個(gè)數(shù)的字符
說(shuō)明:參數(shù)1:要截取的字符串,參數(shù)2:截取字符個(gè)數(shù)
示例:selectLEFT('SqlServer_2008',3)
結(jié)果:Sql
2.RIGHT()? 從右邊截
語(yǔ)法:RIGHT(character,integer)? ?返回 從字符串右邊開始 指定個(gè)數(shù)的字符
說(shuō)明:參數(shù)1:要截取的字符串,參數(shù)2:截取字符個(gè)數(shù)
示例:selectLEFT('SqlServer_2008',4)
結(jié)果:2008
3.SUBSTRING()? ?中間截
語(yǔ)法:SUBSTRING(character,start,length)? ?返回從字符串 中間 的字符
說(shuō)明:參數(shù)1:要截取的字符串,參數(shù)2:開始截取的位數(shù),參數(shù)3:要截取的字符長(zhǎng)度
示例:selectSUBSTRING('SqlServer_2008',4,6)--4)
結(jié)果:Server
以上。
感謝二位!
返回字符串在表達(dá)式expression里第一次出現(xiàn)的位置,起始值從1開始算,沒找就返回0
描述一下此函數(shù)的具體用法:
'%pattern%' 的用法類似于 like '%pattern%' 的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出現(xiàn)的位置。
查找pattern的結(jié)束所在expression的位置,也就是從后面匹配起查找。
查詢pattern首次出現(xiàn)的位置。
返回0,開頭找不到就返回0,后面無(wú)論有多少都不管。
這就相當(dāng)于精確匹配查找,也就是pattern,expression完全相等。
[] 是指定某些特殊的字符。
[^] 除[]之外的字符串。
可以的,需要用到charindex函數(shù)和substring函數(shù)。
CHARINDEX函數(shù)常常用來(lái)在一段字符中搜索字符或者字符串。
substring
public String substring(int beginIndex)
返回一個(gè)新的字符串,它是此字符串的一個(gè)子字符串。該子字符串始于指定索引處的字符,一直到此字符串末尾。
擴(kuò)展資料:
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";
還有此函數(shù)中會(huì)出現(xiàn)奇怪的現(xiàn)象,當(dāng)出現(xiàn)str.substring(5,0);
這又是怎么回事,不過(guò)返回的是"Hello",
str.substring(5,1) //返回"ello",截去了第一位,返回余下的.
可見substring(start,end),可以有不同的說(shuō)明,即start可以是要返回的長(zhǎng)度,end是所要去掉的多少個(gè)字符(從首位開始).
在JS中,substr(start,length),用得較方便.
CustomName包含客戶的First Name和Last Name,它們之間被一個(gè)空格隔開。我們用CHARINDX函數(shù)確定兩個(gè)名字中間空格的位置。通過(guò)這個(gè)方法,我們可以分析ContactName列的空格位置,這樣可以只顯示這個(gè)列的last name部分。
select top 5 substring(ContactName,charindex(' ',ContactName)+1,len(ContactName)) as [Last Name] from customers
CHARINDEX函數(shù)找到First Name和Last Name之間的空格,所以SUBSTRING函數(shù)可以分開ContactName列,這樣就只有Last Name被選出。在CHARINDEX函數(shù)返回的整數(shù)上加1,這樣Last Name不是從空格開始。
參考資料來(lái)源:百度百科-CHARINDEX
百度百科-substring
不管哪個(gè)庫(kù),sql中一般都支持substring 或者它的變種 substr left right mid等