日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL點滴30—SQL中常用的函數

系統 2277 0
原文: SQL點滴30—SQL中常用的函數

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

別人的總結,很詳細。

以下所有例子均Studnet表為例:
SQL點滴30—SQL中常用的函數

?

計算字符串長度
len()用來計算字符串的長度

select sname ,len(sname) from student

字符串轉換為大、小寫
lower() 用來將一個字符串轉換為小寫,upper() 用來將一個字符串轉換為大寫

select lower( ' I AM A STUDENT ! ' )
select upper( 'i am a student !' )

截去字符串左、右側空格 ??????????????????????????????????????????????
ltrim() 用來將一個字符串左側的空格去掉 ,rtrim()用來將一個字符串右側的空格去掉

declare @str varchar( 100 )
set @str = ' 我的左側有空格! '
select @str
as 初始字符, len(@str) as 初始長度,ltrim(@str) as 現有字符,len(ltrim(@str)) as 現有長度

返回由重復的空格組成的字符串
space(
integer_expression ) ?? ? integer_expression 指示空格個數的正整數。如果 integer_expression 為負,則返回空字符串。

select ' A ' + space( 2 ) + ' B '

取子字符串
substring(string,start_position,length) 可以從任意位置取任意長度的子字符串,
left(string,length)? 從左側開始取子字符串
right(string,length)從右側開始取子字符串

select substring( ' HelloWorld! ' , 6 , 6 )
select left(
' HelloWorld! ' ? , 5 )
select
right ( ' HelloWorld! ' ? , 6 )

字符串替換
replace(string,要被替換的字符串,替換的字符串)

select replace( ' HelloWorld! ' , ' o ' , ' e ' ) 結果為:HelleWerld!

返回字符串值的逆向值
reverse( string_expression )

select reverse( ' abc ' ) 結果為: cba

刪除指定長度的字符,并在指定的起點處插入另一組字符
stuff( character_expression , start , length ,character_expression )
start 一個整數值,指定刪除和插入的開始位置。
length 一個整數,指定要刪除的字符數。

select stuff( ' abcdefg ' , 1 , 6 , ' Hello ' ) 結果為:Hello g

以指定的次數重復字符串值
replicate(
string_expression ,integer_expression )

select replicate( ' abc ' , 4 ) 結果為: abcabcabcabc

返回字符串中指定表達式的開始位置
charindex(expression1 ,expression2? , start_location )或charindex(expression1 ,expression2 )
expression1在expression2 中的開始位置

select charindex( ' H ' , ' elloHWorld ' ) 結果為:5

返回指定表達式中模式第一次出現的開始位置
patindex('%pattern%',expression)
返回指定表達式中某模式第一次出現的起始位置;
如果在全部有效的文本和字符數據類型中沒有找到該模式,則返回零。

select patindex( ' %Hello% ' , ' WorldHello ' ) 結果為:6

返回輸入表達式的第一個字符的整數值
unicode( 'ncharacter_expression' ) ??? ' ncharacter_expression ' 為 nchar nvarchar 表達式。

select unicode( ' a ' ) 結果為:97
select unicode(
' abc ' ) 結果為:97

返回由數字數據轉換來的字符數據
str(
float_expression , length ,decimal )
float_expression 帶小數點的近似數字 ( float ) 數據類型的表達式。
length?????????????? 總長度。它包括小數點、符號、數字以及空格。默認值為 10。
decimal???????????? 小數點右邊的小數位數。 decimal 必須小于等于 16。如果 decimal 大于 16,則將結果截斷為小數點右邊的 16 位。

select str( 123.436 , 2 ), len(str( 123.436 , 2 )) // 當表達式超出指定長度時,字符串為指定長度返回 **

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( ' H ' )
select ascii(
' HelloWorld! ' )

得到一個與ASCII碼數字對應的字符
Char(integer_expression)? integer_expression 介于 0 和 255 之間的整數。如果該整數表達式不在此范圍內,將返回 NULL 值。

select Char( 72 )

返回 返回具有指定的整數代碼的 Unicode 字符
nchar( integer_expression ) ? integer_expression 介于 0 與 65535 之間的正整數。如果指定了超出此范圍的值,將返回 NULL。

select nchar( 1000 )

返回帶有分隔符的 Unicode 字符串,分隔符的加入可使輸入的字符串成為有效的 SQL Server 分隔標識符。
quotename( 'character_string' )? character_string 不得超過 128 個字符。超過 128 個字符的輸入將返回 NULL。

select quotename( ' abc[aa]def ' )

結果為:[abc[]]def]? 請注意,字符串 abc[]def 中的右方括號有兩個,用于指示轉義符。
select QUOTENAME('abcdef','''') --分隔符是兩個單引號
-- 'abcdef'
select QUOTENAME('abcdef') --分隔符是]
-- [abcdef]
select QUOTENAME('abcdef','{}') --分隔符是}
-- {abcdef}

發音匹配度
有時候我們并不知道一個人姓名的拼寫,但是我們知道他的發音,這時我們可以進行發音的匹配度測試。
soundex()用于計算一個字符串的發音特征性,這個特征值為一個四個字符的字符串,特征性的第一個字符總是初始字符串中的第一個字符,而后是一個三位數的數值。

select sname ,soundex(sname) from student

結果為:

SQL點滴30—SQL中常用的函數

發音特征值的含義非常復雜,如果要根據兩個發音特征值來分析兩個字符串的發音相似度的話非常麻煩。
可以使用difference()來簡化兩個字符串的發音相似度比較,它可以計算兩個字符串的發音特征值,并且比較它們,
然后返回一個0~4之間的值來反映兩個字符串的發音相似度,這個值越大則表示兩個字符串的發音相似度越大。

select sname,soundex(sname), difference(sname, ' Herry ' ) from stu

結果為:
SQL點滴30—SQL中常用的函數 ??

?

SQL點滴30—SQL中常用的函數


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 潞城市| 东乌珠穆沁旗| 讷河市| 尉氏县| 刚察县| 永安市| 阳山县| 濮阳县| 怀远县| 长治县| 赫章县| 巫山县| 乐亭县| 革吉县| 朝阳县| 吴旗县| 彰武县| 轮台县| 连城县| 凤庆县| 平原县| 天全县| 彰武县| 阿鲁科尔沁旗| 莆田市| 衡东县| 宜宾县| 同仁县| 临夏县| 应用必备| 信阳市| 漠河县| 松阳县| 万载县| 益阳市| 昌图县| 米脂县| 永德县| 锦州市| 景泰县| 安顺市|