SQL Server之字符串函数
以下所有例子均Studnet表為例:
?
計算字符串長度
len()用來計算字符串的長度
字符串轉換為大、小寫
lower() 用來將一個字符串轉換為小寫,upper() 用來將一個字符串轉換為大寫
select upper('i am a student !')
截去字符串左、右側空格???????????????????????????????????????????????
ltrim() 用來將一個字符串左側的空格去掉 ,rtrim()用來將一個字符串右側的空格去掉
set@str='我的左側有空格!'
select @str?as初始字符, len(@str)?as初始長度,ltrim(@str)?as現有字符,len(ltrim(@str))?as現有長度
返回由重復的空格組成的字符串
space(integer_expression)????integer_expression 指示空格個數的正整數。如果?integer_expression?為負,則返回空字符串。
取子字符串
substring(string,start_position,length) 可以從任意位置取任意長度的子字符串,
left(string,length)? 從左側開始取子字符串
right(string,length)從右側開始取子字符串
select left('HelloWorld!',5)
select?right('HelloWorld!',6)
字符串替換
replace(string,要被替換的字符串,替換的字符串)
返回字符串值的逆向值
reverse(string_expression)
刪除指定長度的字符,并在指定的起點處插入另一組字符
stuff(character_expression , start , length ,character_expression)
start 一個整數值,指定刪除和插入的開始位置。
length?一個整數,指定要刪除的字符數。
以指定的次數重復字符串值
replicate(string_expression ,integer_expression)
返回字符串中指定表達式的開始位置
charindex(expression1 ,expression2? , start_location )或charindex(expression1 ,expression2 )
expression1在expression2 中的開始位置
返回指定表達式中模式第一次出現的開始位置
patindex('%pattern%',expression)?返回指定表達式中某模式第一次出現的起始位置;
如果在全部有效的文本和字符數據類型中沒有找到該模式,則返回零。
返回輸入表達式的第一個字符的整數值
unicode( 'ncharacter_expression' )??? '?ncharacter_expression?'?為 nchar?或?nvarchar?表達式。
select unicode('abc')?結果為:97
返回由數字數據轉換來的字符數據
str(float_expression , length ,decimal?)
float_expression 帶小數點的近似數字 (float) 數據類型的表達式。
length?????????????? 總長度。它包括小數點、符號、數字以及空格。默認值為 10。
decimal???????????? 小數點右邊的小數位數。decimal?必須小于等于 16。如果?decimal?大于 16,則將結果截斷為小數點右邊的 16 位。
select str(123.436), len(str(123.436)),
str(123.436,6), len(str(123.436,6)),
str(123.436,6,1), len(str(123.436,6,1))?//由六個數字和一個小數點組成的表達式轉換為有六個位置的字符串。
數字的小數部分舍入為一個小數位。
select str(1234.436), len(str(1234.436)),
str(1234.436,6), len(str(1234.436,6)),
str(1234.436,6,1),len(str(1234.436,6,1))
結果為:
??????????
??????????
得到字符的ASCII碼
ascii()用來得到一個字符的ASCII碼,它有且只有一個參數,如果參數為字符串,那么取第一個字符的ASCII碼
select ascii('HelloWorld!')
得到一個與ASCII碼數字對應的字符
Char(integer_expression)? integer_expression 介于 0 和 255 之間的整數。如果該整數表達式不在此范圍內,將返回 NULL 值。
返回返回具有指定的整數代碼的 Unicode 字符
nchar(integer_expression)? integer_expression 介于 0 與 65535 之間的正整數。如果指定了超出此范圍的值,將返回 NULL。
返回帶有分隔符的 Unicode 字符串,分隔符的加入可使輸入的字符串成為有效的 SQL Server 分隔標識符。
quotename('character_string')??character_string 不得超過 128 個字符。超過 128 個字符的輸入將返回 NULL。
結果為:[abc[]]def]? 請注意,字符串?abc[]def?中的右方括號有兩個,用于指示轉義符。
select QUOTENAME('abcdef','''') --分隔符是兩個單引號
-- 'abcdef'
select QUOTENAME('abcdef') --分隔符是]
-- [abcdef]
select QUOTENAME('abcdef','{}') --分隔符是}
-- {abcdef}
發音匹配度
有時候我們并不知道一個人姓名的拼寫,但是我們知道他的發音,這時我們可以進行發音的匹配度測試。
soundex()用于計算一個字符串的發音特征性,這個特征值為一個四個字符的字符串,特征性的第一個字符總是初始字符串中的第一個字符,而后是一個三位數的數值。
結果為:
發音特征值的含義非常復雜,如果要根據兩個發音特征值來分析兩個字符串的發音相似度的話非常麻煩。
可以使用difference()來簡化兩個字符串的發音相似度比較,它可以計算兩個字符串的發音特征值,并且比較它們,
然后返回一個0~4之間的值來反映兩個字符串的發音相似度,這個值越大則表示兩個字符串的發音相似度越大。
結果為:
?
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,并在文章頁面明顯位置以超鏈接形式注明出處,否則保留追究法律責任的權利。
轉載自:http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html
轉載于:https://www.cnblogs.com/hyqs/articles/3225166.html
總結
以上是生活随笔為你收集整理的SQL Server之字符串函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决office365无法登录以及同步的
- 下一篇: 超星智慧树网课助手浏览器版下载和说明