亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL點(diǎn)滴30—SQL中常用的函數(shù)

系統(tǒng) 2410 0
原文: SQL點(diǎn)滴30—SQL中常用的函數(shù)

該文章轉(zhuǎn)載自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html

別人的總結(jié),很詳細(xì)。

以下所有例子均Studnet表為例:
SQL點(diǎn)滴30—SQL中常用的函數(shù)

?

計(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)始位置
patindex('%pattern%',expression)
返回指定表達(dá)式中某模式第一次出現(xiàn)的起始位置;
如果在全部有效的文本和字符數(shù)據(jù)類型中沒(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ù)類型的表達(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 ))

結(jié)果為:

?????????

?????????

得到字符的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

結(jié)果為:

SQL點(diǎn)滴30—SQL中常用的函數(shù)

發(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

結(jié)果為:
SQL點(diǎn)滴30—SQL中常用的函數(shù) ??

?

SQL點(diǎn)滴30—SQL中常用的函數(shù)


更多文章、技術(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ì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 日本高清不卡视频 | 一区二区在线精品免费视频 | 久久夜色tv网站 | 亚洲好色网| 国产亚洲福利精品一区二区 | 97伦理| 久久天天躁狠狠躁夜夜躁综合 | 国产精品视频公开费视频 | 日韩伦理视频 | 青青热久久国产久精品 | 99热久久精里都是精品66 | 国产精品欧美一区二区三区不卡 | 久久99精品久久久久久国产越南 | 国产精品第页 | 香蕉视频免费在线 | 国产高清在线精品一区二区三区 | 操视频网站 | 夜夜夜夜夜操 | 久久精品国产免费看久久精品 | a一级黄色片 | 亚洲综合伊人 | 亚洲人成伊人成综合网久久久 | 99999久久久久久亚洲 | 日韩一级一片 | 26uuu另类欧美亚洲曰本 | 亚洲九九香蕉 | 天天干天天操天天做 | 国产成人在线播放视频 | 国产精品视频永久免费播放 | 久久一区二区免费播放 | 狠狠色噜噜狠狠狠狠色吗综合 | 国99久9在线 | 免费 | 久久精品这里精品 | 国产农村精品一级毛片视频 | 久久久久久免费观看 | 成人亚洲在线观看 | 久久精品国产这里是免费 | 久久综合亚洲一区二区三区 | 久爱www成人网免费视频 | 伊人不卡久久大香线蕉综合影院 | 亚洲一区免费在线观看 |