1. 程式人生 > 其它 >SQL 字串函式

SQL 字串函式

SQL 常用的字串函式

1.replace:替換函式replace(string,from_str,to_str)

即:將string中所有出現的from_str替換為to_str


2.left:left:(string,2) 從邊選取兩個


3.right:
right(string,2) 從右邊選取兩個


4.substring:字串,起始下標,長度

返回提取的字串, select substring (‘abcdefg’,2,2)得到結果:bc,從第2位開始擷取,擷取兩位。
substring (str,pos):str代表字串;pos代表從第位置開始到結尾的所有字串;注意此語法不適用於sql server


5.ascii(字串):返回字串表示式中最左側的ASCII程式碼值: select ASCII(‘S’) 得到結果83


6.char(字元):將整數型別的ASCII值轉換為對應的字元;select char(83) 得到結果s

7.cast :型別轉換函式 ; cast (expression as data_type); as 用於分隔兩個引數,

在as之前的是要處理的資料,在as之後是要轉換的資料型別
data_type:目標系統所提供的資料型別,包括bigint和sql_variant ,不能使用使用者定義的資料型別
select cast(‘12’ as int) 字串轉換為int,不能執行四捨五入或擷取操作


cast不可以轉換日期型別,convert可以通用


8.convert: convert(data_type,expression[,STYLE])

convert(資料型別,表示式)
引數說明:expression: 是任何有效的sql server 表示式
data_type:目標系統所提供的資料型別,包括bigint和sql_variant ,不能使用使用者定義的資料型別
select 100.0 + convert(int,‘1000’) --預設把字串轉換為整形
select * from student order by convert(int,bid) desc --bid列按照降序來排列,bid是varchar型別


print convert(varchar(10),getdate(),120) 日期轉換varchar(10) 表示顯示的字元長度,120表示style
9.space: 返回指定個數空格的字串
select ‘A’ +space(2)+‘B’ --A B


10.str : 函式由數字資料轉換來的字元資料
語法:str(float_expression [,length[,decimal]])
引數:float_expression 是帶小數點的近似數字(float) 資料型別表示式 ,不要在str函式中將函式或子查詢用作float_exproession
length:是總長度,包括小數點,符號、數字或空格。預設值為10.
decimal:是小數點右邊的位數
返回型別 char


11.charindex:返回字串中指定表示式的起始位置
語法:charindex(expression1,expression2 ,start_location)


expression1在expression2中的開始位置,start_location,預設從位置1處開始查詢
select charindex(‘a’,‘abcdefg’) 返回 1
select charindex(‘a’,‘abcdefg’,1) 返回 1
select charindex(‘b’,‘abcdefg’,1) 返回 2
select charindex(‘b’,‘abcdefg’,2) 返回2
select chairindex(‘b’,‘abcdefg’,3) 返回0
select charindex(‘cd’,‘abcdefg’,3) 返回3


12.lower:返回轉換為小寫的字串
select lower(‘AVGDFG’)


13.upper:返回轉換為大寫的字串
select upper(‘asdfg’)


14.ltrim:返回去左空格的字串
select ltrim(’ asdf’)


15.rtrim:返回去右空格的字串
select rtrim(‘asdfrr ‘)


16.patindex:返回指定表示式中模式第一次出現的開始位置
select patindex(’%cd%’,‘abcdefg’) 返回3
select patindex(’%_cd%’,‘abcdefg’) 返回2
select patindex(’%ca",‘abcdefg’) 返回0


17.quotename: 返回為成為有效的sql server 分隔符識別符號而添加了分隔符的Unicode字串
select quotename(‘a’) – [a]
select quotename(‘abcd’)-- [abcd]
select quotename(‘abcd’,’’) – [abcd]


18.replicate:返回指定次數重複的表示式
select replicate(‘a’,4) --aaaa
select replicate(‘abc|’,4) --abc|abc|abc|abc|


19.reverse :返回反轉後的字串
select reverse(‘abc’) – cba


20.len:返回字元段的長度
select len(‘abcdefg’) --7


21.stuff:刪除指定長度的字元,並在指定的起點處插入另一組字元
語法:stuff(character_expression,start,length,character_expression)


character_expression 被搜尋的字串


start 開始位置


length 要刪除的長度

character_expression 替換字串


eg: select stuff(‘abcd’,1,4,‘1’) --1


select stuff(‘abcdefg’,2,3,‘1111’) – a1111efg


select stuff('abcdefg’2,3,‘11’) – a11efg