<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在開發T-SQL時,經常會需要對字串進行各種各樣的操作,下面介紹常用的字串函數。
ASCII(espression)
這裡的expression是一個返回char或varchar資料型別的表示式,ASCII函數僅對錶示式最左側的字元返回ASCII碼值。
返回值:int資料型別。
注意:如果是多個字元的字串,也只是返回第一個字元的ASCII碼值。
select ASCII('f') --輸出 102
char(integer_expression)
返回值:char型字元
select char(102) -- 輸出f
unicode('ncharacter_expression')
這裡的ncharacter_expression是nchar或nvarchar型別的表示式。函數僅會返回第一個字元的unicode編碼。
返回值:int型別資料
SELECT Unicode('飛') -- 輸出 39134
nchar(integer_expression)
返回值:unicode字元
SELECT nchar(39134) -- 輸出 飛
patindex( '%pattenr%' , expression )
patindex函數返回指定表示式中某模式第一次出現的起始位置;如果在全部有效的文字和字元資料型別中沒有找到該模式則返回0。
注意:PatIndex模式為萬用字元, CharIndex不能使用萬用字元
引數說明:pattern:一個文字字串。可以使用萬用字元,但pattern之前和之後必須有%字元(搜尋第一個或自後一個字元時除外)。因為在T-SQL中,%代表模式匹配。
返回值:如果expression的資料型別為varchar(max)或nvarchar(max),則為bigint,否則int,即pattern指定的字串在expression中第一次出現的位置。
select patindex('%llo%','hello world') --輸出3,第一次出現llo是在第3個字元位置
charindex函數用於在指定的字串中搜尋特定的字串,並可以指定開始搜尋的位置,返回第一次找到目標字串的起始位置。
charindex ( expression1 , expression2 [ , start_location] )
引數說明:
返回值:如果expression2的資料型別為varchar(max)、nvarchar(max)或varbinary(max),則為bigint,否則為int。
select charindex('456','123456789') -- 輸出 4 從123456789中檢索456出現的位置 select charindex('456','123456789',4) -- 輸出 4
len函數用於獲取字串的長度(字元數),但不包括右邊的空格。左邊的空格和中間的空格計算在內。
len( string_expression )
引數說明:string_expression:要計算長度的字串。
返回值:expression資料型別為varchar(max)、nvarchar(max)或varbinary(max),則為bigint。否則為int。
select len('天下之大,無奇不有') -- 輸出 9
datalength函數用於獲取字串的位元組數,而不是字元數。該函數不僅適合字串資料,還適合文字(text、ntext)、二進位制資料(varbinary、binary)和影象(image)等任意型別的資料。空格均計算在內。
datalength(expression)
返回值:如果expression資料型別為varchar(max)、nvarchar(max)或varbinary(max)資料型別,則返回bigint;否則返回int。
select datalength('我是一個兵') --輸出 10 select len('我是一個兵') --輸出 5 select datalength('abcde') --輸出5 select len('abcde') --輸出5
left函數用於擷取從左邊第一個字元開始,指定長度的字串。其執行效果等於substring(expression,1,length)。
left(character_expression,integer_expression)
引數說明:
返回值: varchar或nvarchar,變長字串。
select left('123456789',3) --輸出 123
right函數用於擷取從右邊第一個字元開始,指定長度的字串。其執行效果等於SUNSTRING(expression,len(expression)-length+1,length)。
right(character_expression,integer_expression)
引數說明:
返回值: varchar或nvarchar,變長字串。
select right('123456789',3) --輸出 789
substring函數可以對字串進行字串的擷取操作。
substring( expression,start,length)
引數說明:
返回值:如果expression是受支援的字元資料型別,則返回字元資料。如果expression是受支援的binary資料型別,則返回二進位制資料。
select substring('hello',1,2) --輸出 he 與C#有點不同,它第一個字元是從1開始的
space函數可以生成任意多個空格組成的字串。
space ( integer_expression )
這裡的integer_expression為指示空格個數的正整數。如果要在unicode資料中包含空格或超過8000個以上的空格,需要使用replicate函數。
返回值:char資料型別的字元。
select ('hello' + space(5) + 'world') --輸出 hello world
replicate函數可以按照指定的整數次數,重複生成一個字串形式的表示式,結果為字串。
replicate( character_expression,integer_expression )
引數說明:
返回值:與character_expression相同資料型別的字串。
select replicate('hello',5) --輸出hellohellohellohellohello
stuff函數用於在指定的字串中刪除指定長度的字元,並在起點處插入另外一組字元。
stuff(source_character_expression,start,length,destination_character_expression)
引數說明:
select stuff('123456789',5,2,'xyz') --輸出1234xyz789 從第5個字元開始,將第5 6兩個字元替換成xyz字串
quotename函數用於生成帶有分隔符的Unicode字串。分隔符可以是單引號(')、左右方括號([])或者英文雙引號(")。如果不指定,則使用方括號。帶有方括號的Unicode字串如:[hello]。
quotename( 'character_string' [ , 'quote_character'] )
引數說明:
返回值:nvarchar(258),生成帶有分隔符的字串。長度不能超過258
select quotename('我是一個兵') -- 輸出[我是一個兵] select quotename('我是一個兵','"') -- 輸出"我是一個兵"
如果字串的字一個字元為空格,ltrim函數用於清除連續的左邊空格。
ltrim(character_expression)
character_expression為字元或二進位制資料表示式,可以是常數、變數或資料列。
返回值:varchar或nvarchar,變長字串。
select ltrim(' 123456789') --輸出 123456789,注意左邊的空格已被刪除了,輸出字串左邊是沒空格的
rtrim函數用於清空右邊連續的空格。
rtrim(character_expression)
character_expression為字元或二進位制資料表示式,可以是常數、變數或資料列。
返回值: varchar或nvarchar,變長字串。
select rtrim('123456789 ') --輸出123456789,注意右邊的空格已經被清除了
lower函數將字串全部轉換為小寫字元后返回。
lower(character_expression)
返回值:varchar或nvarchar,變長字串
select lower('ABCDEFG') --輸出 abcdefg 已經全部轉換為小寫了
upper函數用於將字串全部轉換為大寫字元后返回。
upper(character_expression)
character_expression為字元或二進位制表示式,可以是常數,變數或資料列。
返回值:varchar或nvarchar,變長字串。
select upper('abcdefg') --輸出 ABCDEFG 留意到已經全部轉換為大寫了
reverse函數用於將字串內容反序後返回。
reverse(character_expression)
character_expression:為二進位制或二進位制資料表示式,可以是常數、變數或資料列。
返回值:varchar或nvarchar,變長字串
select reverse('123456789') --輸出 987654321 注意到順序已經反轉過來了
replace用另一個字串值替換出現的所有指定字串值。
REPLACE ( string_expression1 , string_expression2 , string_expression3 )
引數說明:
SELECT REPLACE('abcde','abc','xxx') --xxxde
str函數用於將浮點數轉換為字串
str(float_expression[,length[,decimal]])
引數說明:
返回值:char:定長字串。
select str(123.456789) -- 輸出 123 select str(123.456789,7) --輸出 123 注意前面的是4個空格,因為不寫小數點後保留多少位,所以自動填充空格 select str(123.456789,7,3) -- 輸出123.457 最後一位 四捨五入了,總長度為7,小數點後保留3位
返回一個由四個字元組成的程式碼 (SOUNDEX),此發音演演算法用於評估兩個字串的相似性。
SELECT SOUNDEX('ABCDE') --A120 SELECT SOUNDEX('ABCDR') --A121
返回一個整數值,指示兩個字元表示式的 SOUNDEX 值之間的差異。
SELECT DIFFERENCE('abcde','abc') --4
到此這篇關於SQL Server字串函數的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45