sql字元截取
1. sql server截取某個特定字元前的字元串
left(列名,charindex(特定字元,列名)-1)
left:返回從左邊開始指定字元串
charindex:找到特定並返回字元所在位置
select left(case_name,charindex('_',case_name)-1) from table1 where charindex('_',case_name)-1 > 0
注意:不加where後面的條件會報 「傳遞給 LEFT 或 SUBSTRING 函數的長度參數無效」的錯誤。
2. sql字元串截取查詢,該怎麼解決
SQL Server 中截取字元串常用的函數:
1.LEFT ( character_expression , integer_expression )
函數說明:LEFT ( '源字元串' , '要截取最左邊的字元數' )
返回從字元串左邊開始指定個數的字元
select LEFT('SQL_Server_2008',4 );
返回結果:SQL_
2.RIGHT ( character_expression , integer_expression )
函數說明:RIGHT ( '源字元串' , '要截取最右邊的字元數' )
返回字元串中從右邊開始指定個數的 integer_expression 字元
select RIGHT('SQL_Server_2008',4 );
返回結果:2008
3.SUBSTRING ( character_expression , start , length )
函數說明:SUBSTRING ( '源字元串' , '截取起始位置(含該位置上的字元)' , '截取長度' )
返回字元、binary、text 或 image 表達式的一部分
select SUBSTRING('SQL_Server_2008',5 ,6);
返回結果:Server
3. 3.SQL字元串截取技巧
有時我們會臨時寫一些SQL腳本來統計一些東西,或者是提供視圖或者存儲過程給第三方使用。但是有些內容是串聯起來存在一個欄位中的。
比如:sMZ(民族) sLx(聯系方式)
01/漢族 tel:123456/qq:87654321/phone:13812345678
SELECT SUBSTRING('01/漢族',4,2) 漢族
SELECT RIGHT('01/漢族',2) 漢族 --也是一樣的
取民族很簡單 如果要取手機號phone 就比較麻煩了,因為我們不知道QQ是幾位的
或者qq電話可能沒有填寫了,單純依靠欄位長度截取不了的。
這樣就需要變通下了:
SELECT SUBSTRING('tel:123456/qq:87654321/phone:13812345678',
charindex('/phone','tel:123456/qq:87654321/phone:13812345678')+1,1000)
使用charindex獲取'/phone'字元的其實位置 嵌套SUBSTRING截取
如果在MySQL中還可以這樣:
substring_index('tel:123456/qq:87654321/phone:13812345678', '/', -1)
'phone:13812345678' 截取第一個 '/' (倒數)之後的所有字元
substring_index('tel:123456/qq:87654321/phone:13812345678', '/', 1)
'tel:123456' 截取第一個 '/' 之前的所有字元
4. 【搬運】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
以上。
https://www.cnblogs.com/xielong/p/7670757.html
感謝二位!
5. SQL SERVER 字元串截取
1.將字元串中從某個字元開始截取一段字元,替換成另一字元
select stuff('helloworld!',4,4,'****')
hel****rld!
2.指定字元串起始位置,截取指定長度
select substring('helloworld!',4,5)
lowor
3.替換指定字元串
select replace('helloworld!','ld','aa')
helloworaa!
4.去除字元串兩端空格
select ltrim(' helloworld!')
helloworld!
5.用0替換NULL【isnull( )】
select ISNULL(KCRKD2_SCDDLS,0) from KCRKD2
返回0
6.取字元串,再轉化為整數
select convert(float,substring(xsddmx_wlbh,6,3)) from XSDDMX
7.字元串前三個是固定的,後面長度是變化的用LEN()取字元串長度,去掉前三個字元(截取右端固定字元數換成LEFT)
SELECT RIGHT(KCRKD3_JH,LEN(KCRKD3_JH)-3) FROM KCRKD3
返回B160459B01487
8.從『-』向後截取8位字元(charindex()返回字元位置)
select SUBSTRING('E03AHJC-E1701005020184',charindex('-','E03AHJC-E1701005020184')+1,8)
9. replace將『h』替換
SELECT REPLACE('Hello,World!','h','2') 2ello,World!
SELECT REPLACE('Hello,World!','h','') ello,World!
SELECT REPLACE('Hello,World!',' ','2') Hello,World!
10.復制字元
select REPLICATE('Hello,World!',3)
時間函數
1.截取兩個時間的時間差
select DATEDIFF(D,TMBASE_DATE,GETDATE()) from TMBASE
6. sql語句,如何截取指定欄位某一個字元出現後的後面的字元串嗎
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。
7. sql語句,能夠截取指定欄位後面的一個字元串嗎
可以的,需要用到charindex函數和substring函數。
CHARINDEX函數常常用來在一段字元中搜索字元或者字元串。
substring
public String substring(int beginIndex)
返回一個新的字元串,它是此字元串的一個子字元串。該子字元串始於指定索引處的字元,一直到此字元串末尾。
(7)sql字元截取擴展閱讀:
javascript示例
1 <scripttype="text/javascript">
2 varstr="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不是從空格開始。