計(jì)算字符串長(zhǎng)度
len()用來(lái)計(jì)算字符串的長(zhǎng)度
select
sname ,
len
(sname)
from
student
字符串轉(zhuǎn)換為大、小寫(xiě)
lower() 用來(lái)將一個(gè)字符串轉(zhuǎn)換為小寫(xiě),upper() 用來(lái)將一個(gè)字符串轉(zhuǎn)換為大寫(xiě)
select
lower
(
'
I AM A STUDENT !
'
)
select
upper
(
'
i am a student !
'
)
截去字符串左、右側(cè)空格???????????????????????????????????????????? ?
ltrim() 用來(lái)將一個(gè)字符串左側(cè)的空格去掉 ,rtrim()用來(lái)將一個(gè)字符串右側(cè)的空格去掉
declare
@str
varchar
(
100
)
set
@str
=
'
我的左側(cè)有空格!
'
select
@str
as
初始字符,
len
(
@str
)
as
初始長(zhǎng)度,
ltrim
(
@str
)
as
現(xiàn)有字符,
len
(
ltrim
(
@str
))
as
現(xiàn)有長(zhǎng)度
返回由重復(fù)的空格組成的字符串
space
(integer_expression) integer_expression 指示空格個(gè)數(shù)的正整數(shù)。如果 integer_expression 為負(fù),則返回空字符串。
select
'
A
'
+
space
(
2
)
+
'
B
'
取子字符串
substring
(string,start_position,length) 可以從任意位置取任意長(zhǎng)度的子字符串,
left
(string,length) 從左側(cè)開(kāi)始取子字符串
right
(string,length)從右側(cè)開(kāi)始取子字符串
select
substring
(
'
HelloWorld!
'
,
6
,
6
)
select
left
(
'
HelloWorld!
'
,
5
)
select
right
(
'
HelloWorld!
'
,
6
)
字符串替換
replace
(string,要被替換的字符串,替換的字符串)
select
replace
(
'
HelloWorld!
'
,
'
o
'
,
'
e
'
) 結(jié)果為:HelleWerld!
返回字符串值的逆向值
reverse
(string_expression)
select
reverse
(
'
abc
'
) 結(jié)果為:cba
刪除指定長(zhǎng)度的字符,并在指定的起點(diǎn)處插入另一組字符
stuff
(character_expression , start , length ,character_expression)
start 一個(gè)整數(shù)值,指定刪除和插入的開(kāi)始位置。
length 一個(gè)整數(shù),指定要?jiǎng)h除的字符數(shù)。
select
stuff
(
'
abcdefg
'
,
1
,
6
,
'
Hello
'
) 結(jié)果為:Hello g
以指定的次數(shù)重復(fù)字符串值
replicate
(string_expression ,integer_expression)
select
replicate
(
'
abc
'
,
4
) 結(jié)果為:abcabcabcabc
返回字符串中指定表達(dá)式的開(kāi)始位置
charindex
(expression1 ,expression2 , start_location )或charindex(expression1 ,expression2 )
expression1在expression2 中的開(kāi)始位置
select
charindex
(
'
H
'
,
'
elloHWorld
'
) 結(jié)果為:
5
返回指定表達(dá)式中模式第一次出現(xiàn)的開(kāi)始位置,返回指定表達(dá)式中某模式第一次出現(xiàn)的起始位置;
patindex
(
'
%pattern%
'
,expression)
如果在全部有效的文本和字符數(shù)據(jù)類(lèi)型中沒(méi)有找到該模式,則返回零。
select
patindex
(
'
%Hello%
'
,
'
WorldHello
'
) 結(jié)果為:
6
返回輸入表達(dá)式的第一個(gè)字符的整數(shù)值
unicode
(
'
ncharacter_expression
'
)
'
ncharacter_expression
'
為
nchar
或
nvarchar
表達(dá)式。
select
unicode
(
'
a
'
) 結(jié)果為:
97
select
unicode
(
'
abc
'
) 結(jié)果為:
97
返回由數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換來(lái)的字符數(shù)據(jù)
str(float_expression , length ,decimal )
float_expression 帶小數(shù)點(diǎn)的近似數(shù)字 (float) 數(shù)據(jù)類(lèi)型的表達(dá)式。
length?????????????? 總長(zhǎng)度。它包括小數(shù)點(diǎn)、符號(hào)、數(shù)字以及空格。默認(rèn)值為 10。
decimal???????????? 小數(shù)點(diǎn)右邊的小數(shù)位數(shù)。decimal 必須小于等于 16。如果 decimal 大于 16,則將結(jié)果截?cái)酁樾?shù)點(diǎn)右邊的 16 位。
select
str
(
123.436
,
2
),
len
(
str
(
123.436
,
2
))
//
當(dāng)表達(dá)式超出指定長(zhǎng)度時(shí),字符串為指定長(zhǎng)度返回
**
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
))
//
由六個(gè)數(shù)字和一個(gè)小數(shù)點(diǎn)組成的表達(dá)式轉(zhuǎn)換為有六個(gè)位置的字符串。
數(shù)字的小數(shù)部分舍入為一個(gè)小數(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
))
得到字符的ASCII碼
ascii()用來(lái)得到一個(gè)字符的ASCII碼,它有且只有一個(gè)參數(shù),如果參數(shù)為字符串,那么取第一個(gè)字符的ASCII碼
select
ascii
(
'
H
'
)
select
ascii
(
'
HelloWorld!
'
)
得到一個(gè)與ASCII碼數(shù)字對(duì)應(yīng)的字符
Char
(integer_expression) integer_expression 介于
0
和
255
之間的整數(shù)。如果該整數(shù)表達(dá)式不在此范圍內(nèi),將返回
NULL
值。
select
Char
(
72
)
返回返回具有指定的整數(shù)代碼的 Unicode 字符
nchar
(integer_expression) integer_expression 介于
0
與
65535
之間的正整數(shù)。如果指定了超出此范圍的值,將返回
NULL
。
select
nchar
(
1000
)
返回帶有分隔符的 Unicode 字符串,分隔符的加入可使輸入的字符串成為有效的 SQL Server 分隔標(biāo)識(shí)符。
quotename
(
'
character_string
'
) character_string 不得超過(guò)
128
個(gè)字符。超過(guò)
128
個(gè)字符的輸入將返回
NULL
。
select
quotename
(
'
abc[aa]def
'
)
結(jié)果為:
[
abc[
]
]def] 請(qǐng)注意,字符串 abc
[]
def 中的右方括號(hào)有兩個(gè),用于指示轉(zhuǎn)義符。
select
QUOTENAME
(
'
abcdef
'
,
''''
)
--
分隔符是兩個(gè)單引號(hào)
--
'abcdef'
select
QUOTENAME
(
'
abcdef
'
)
--
分隔符是]
--
[abcdef]
select
QUOTENAME
(
'
abcdef
'
,
'
{}
'
)
--
分隔符是}
--
{abcdef}
發(fā)音匹配度
有時(shí)候我們并不知道一個(gè)人姓名的拼寫(xiě),但是我們知道他的發(fā)音,這時(shí)我們可以進(jìn)行發(fā)音的匹配度測(cè)試。
soundex()用于計(jì)算一個(gè)字符串的發(fā)音特征性,這個(gè)特征值為一個(gè)四個(gè)字符的字符串,特征性的第一個(gè)字符總是初始字符串中的第一個(gè)字符,而后是一個(gè)三位數(shù)的數(shù)值。
select sname ,soundex(sname) from student
發(fā)音特征值的含義非常復(fù)雜,如果要根據(jù)兩個(gè)發(fā)音特征值來(lái)分析兩個(gè)字符串的發(fā)音相似度的話非常麻煩。
可以使用difference()來(lái)簡(jiǎn)化兩個(gè)字符串的發(fā)音相似度比較,它可以計(jì)算兩個(gè)字符串的發(fā)音特征值,并且比較它們,
然后返回一個(gè)0~4之間的值來(lái)反映兩個(gè)字符串的發(fā)音相似度,這個(gè)值越大則表示兩個(gè)字符串的發(fā)音相似度越大。
select sname,soundex(sname), difference(sname,'Herry') from stu
?
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

