該文章轉(zhuǎn)載自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html
別人的總結(jié),很詳細(xì)。
以下所有例子均Studnet表為例:
?
計算字符串長度
len()用來計算字符串的長度
字符串轉(zhuǎn)換為大、小寫
lower() 用來將一個字符串轉(zhuǎn)換為小寫,upper() 用來將一個字符串轉(zhuǎn)換為大寫
select upper( 'i am a student !' )
截去字符串左、右側(cè)空格
??????????????????????????????????????????????
ltrim() 用來將一個字符串左側(cè)的空格去掉 ,rtrim()用來將一個字符串右側(cè)的空格去掉
set @str = ' 我的左側(cè)有空格! '
select @str as 初始字符, len(@str) as 初始長度,ltrim(@str) as 現(xiàn)有字符,len(ltrim(@str)) as 現(xiàn)有長度
返回由重復(fù)的空格組成的字符串
space(
integer_expression
)
??
?
integer_expression 指示空格個數(shù)的正整數(shù)。如果
integer_expression
為負(fù),則返回空字符串。
取子字符串
substring(string,start_position,length) 可以從任意位置取任意長度的子字符串,
left(string,length)? 從左側(cè)開始取子字符串
right(string,length)從右側(cè)開始取子字符串
select left( ' HelloWorld! ' ? , 5 )
select right ( ' HelloWorld! ' ? , 6 )
字符串替換
replace(string,要被替換的字符串,替換的字符串)
返回字符串值的逆向值
reverse(
string_expression
)
刪除指定長度的字符,并在指定的起點處插入另一組字符
stuff(
character_expression , start , length ,character_expression
)
start 一個整數(shù)值,指定刪除和插入的開始位置。
length
一個整數(shù),指定要刪除的字符數(shù)。
以指定的次數(shù)重復(fù)字符串值
replicate(
string_expression ,integer_expression
)
返回字符串中指定表達式的開始位置
charindex(expression1 ,expression2? , start_location )或charindex(expression1 ,expression2 )
expression1在expression2 中的開始位置
返回指定表達式中模式第一次出現(xiàn)的開始位置
patindex('%pattern%',expression)
返回指定表達式中某模式第一次出現(xiàn)的起始位置;
如果在全部有效的文本和字符數(shù)據(jù)類型中沒有找到該模式,則返回零。
返回輸入表達式的第一個字符的整數(shù)值
unicode( 'ncharacter_expression' )
??? '
ncharacter_expression
'
為 nchar
或
nvarchar
表達式。
select unicode( ' abc ' ) 結(jié)果為:97
返回由數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換來的字符數(shù)據(jù)
str(
float_expression , length ,decimal
)
float_expression 帶小數(shù)點的近似數(shù)字 (
float
) 數(shù)據(jù)類型的表達式。
length?????????????? 總長度。它包括小數(shù)點、符號、數(shù)字以及空格。默認(rèn)值為 10。
decimal???????????? 小數(shù)點右邊的小數(shù)位數(shù)。
decimal
必須小于等于 16。如果
decimal
大于 16,則將結(jié)果截斷為小數(shù)點右邊的 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 )) // 由六個數(shù)字和一個小數(shù)點組成的表達式轉(zhuǎn)換為有六個位置的字符串。
數(shù)字的小數(shù)部分舍入為一個小數(shù)位。
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 ))
結(jié)果為:
?????????
?????????
得到字符的ASCII碼
ascii()用來得到一個字符的ASCII碼,它有且只有一個參數(shù),如果參數(shù)為字符串,那么取第一個字符的ASCII碼
select ascii( ' HelloWorld! ' )
得到一個與ASCII碼數(shù)字對應(yīng)的字符
Char(integer_expression)? integer_expression 介于 0 和 255 之間的整數(shù)。如果該整數(shù)表達式不在此范圍內(nèi),將返回 NULL 值。
返回
返回具有指定的整數(shù)代碼的 Unicode 字符
nchar(
integer_expression
)
? integer_expression 介于 0 與 65535 之間的正整數(shù)。如果指定了超出此范圍的值,將返回 NULL。
返回帶有分隔符的 Unicode 字符串,分隔符的加入可使輸入的字符串成為有效的 SQL Server 分隔標(biāo)識符。
quotename(
'character_string'
)?
character_string 不得超過 128 個字符。超過 128 個字符的輸入將返回 NULL。
結(jié)果為:[abc[]]def]? 請注意,字符串
abc[]def
中的右方括號有兩個,用于指示轉(zhuǎn)義符。
select QUOTENAME('abcdef','''') --分隔符是兩個單引號
-- 'abcdef'
select QUOTENAME('abcdef') --分隔符是]
-- [abcdef]
select QUOTENAME('abcdef','{}') --分隔符是}
-- {abcdef}
發(fā)音匹配度
有時候我們并不知道一個人姓名的拼寫,但是我們知道他的發(fā)音,這時我們可以進行發(fā)音的匹配度測試。
soundex()用于計算一個字符串的發(fā)音特征性,這個特征值為一個四個字符的字符串,特征性的第一個字符總是初始字符串中的第一個字符,而后是一個三位數(shù)的數(shù)值。
結(jié)果為:
發(fā)音特征值的含義非常復(fù)雜,如果要根據(jù)兩個發(fā)音特征值來分析兩個字符串的發(fā)音相似度的話非常麻煩。
可以使用difference()來簡化兩個字符串的發(fā)音相似度比較,它可以計算兩個字符串的發(fā)音特征值,并且比較它們,
然后返回一個0~4之間的值來反映兩個字符串的發(fā)音相似度,這個值越大則表示兩個字符串的發(fā)音相似度越大。
結(jié)果為:
??
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
