国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

字符串函數(shù)(一)

2024-07-21 02:13:07
字體:
供稿:網(wǎng)友
字符串函數(shù)對二進(jìn)制數(shù)據(jù)、字符串和表達(dá)式執(zhí)行不同的運(yùn)算。此類函數(shù)作用于char、varchar、 binary、 和varbinary 數(shù)據(jù)類型以及可以隱式轉(zhuǎn)換為char 或varchar的數(shù)據(jù)類型。可以在select 語句的select 和where 子句以及表達(dá)式中使用字符串函數(shù)。常用的字符串函數(shù)有:

1、字符轉(zhuǎn)換函數(shù)
有以下幾種字符轉(zhuǎn)換函數(shù):
·ascii()
ascii() 函數(shù)返回字符表達(dá)式最左端字符的ascii 碼值。ascii() 函數(shù)語法如下:


  例4-40:



提醒:在ascii()函數(shù)中,純數(shù)字的字符串可不用‘’括起來,但含其它字符的字符串必須用‘’括起來使用,否則會出錯。

·char()
char() 函數(shù)用于將ascii 碼轉(zhuǎn)換為字符。其語法如下:

如果沒有輸入0 ~ 255 之間的ascii 碼值,char() 函數(shù)會返回一個null 值。

  例4-41:


·lower()
lower() 函數(shù)把字符串全部轉(zhuǎn)換為小寫,其語法如下:
   

  例4-42:


·upper()
upper() 函數(shù)把字符串全部轉(zhuǎn)換為大寫,其語法如下:
 

  例4-43:


·str()
str() 函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù),其語法如下:
str (<float _expression>[,length[, <decimal>]])
  自變量length 和decimal 必須是非負(fù)值,length 指定返回的字符串的長度,decimal 指定返回的小數(shù)位數(shù)。如果沒有指定長度,缺省的length 值為10, decimal 缺省值為0。 小數(shù)位數(shù)大于decimal 值時,str() 函數(shù)將其下一位四舍五入。指定長度應(yīng)大于或等于數(shù)字的符號位數(shù)+小數(shù)點(diǎn)前的位數(shù)+小數(shù)點(diǎn)位數(shù)+小數(shù)點(diǎn)后的位數(shù)。如果<float _expression>小數(shù)點(diǎn)前的位數(shù)超過了指定的長度,則返回指定長度的“*”。

  例4-44:


2、去空格函數(shù)
去空格函數(shù)有如下兩種:
·ltrim()
ltrim() 函數(shù)把字符串頭部的空格去掉,其語法如下:
  ltrim (<character _expression>)

  例4-45:


·rtrim()
rtrim() 函數(shù)把字符串尾部的空格去掉,其語法如下:
  rtrim (<character _expression>)

  例4-46:


提示:在許多情況下,往往需要得到頭部和尾部都沒有空格字符的字符串,這時可將上兩個函數(shù)嵌套使用。

  例4-47:


3、取子串函數(shù)
取子串函數(shù)如下所示:
·left()
left() 函數(shù)返回部分字符串,其語法如下:
  left (<character_expression>, <integer_expression>)
  left() 函數(shù)返回的子串是從字符串最左邊起到第integer_expression 個字符的部分。若integer_expression 為負(fù)值,則返回null 值。

  例4-48:


·right()
right() 函數(shù)返回部分字符串,其語法如下:
  right (<character_expression>, <integer_expression>)
  right() 函數(shù)返回的子串是從字符串右邊第integer_expression 個字符起到最后一個字符的部分。若integer_expression 為負(fù)值,則返回null 值。

  例4-49:


·substring()
substring() 函數(shù)返回部分字符串,其語法如下:
  substring (<expression>, <starting_ position>, length)
  substring() 函數(shù)返回的子串是從字符串左邊第starting_ position 個字符起length個字符的部分。其中表達(dá)式可以是字符串或二進(jìn)制串或含字段名的表達(dá)式。substring()函數(shù)不能用于text 和image 數(shù)據(jù)類型。

  例4-50:


4、字符串比較函數(shù)
字符串比較函數(shù)如下所示:
·charindex()
charindex() 函數(shù)返回字符串中某個指定的子串出現(xiàn)的開始位置,其語法如下:
  charindex (<’substring_expression’>, <expression>)
  其中substring _expression 是所要查找的字符表達(dá)式,expression 可為字符串也可為列名表達(dá)式。如果沒有發(fā)現(xiàn)子串,則返回0 值。此函數(shù)不能用于text 和image 數(shù)據(jù)類型。

  例4-51:


  例4-52:


·patindex()
patindex() 函數(shù)返回字符串中某個指定的子串出現(xiàn)的開始位置,其語法如下:
  patindex (<’%substring _expression%’>, <column_ name>)
  其中子串表達(dá)式前后必須有百分號“%”否則返回值為0。

  例4-53:


  與charindex() 函數(shù)不同的是,patindex() 函數(shù)的子串中可以使用通配符,且此函數(shù)可用于char、 varchar 和text 數(shù)據(jù)類型。

  例4-54:


·soundex()
soundex() 函數(shù)返回一個四位字符碼,其語法如下:
  soundex (<character _expression>)
  soundex() 函數(shù)將character _expression 轉(zhuǎn)換為4 個字符的聲音碼。其中第一個碼為原字符串的第一個字符,第二到第四個字符則為數(shù)字,是該字符串的聲音字母所對應(yīng)的數(shù)字,但是忽略了除首字母外的串中的所有元音字母 。soundex() 函數(shù)可用來查找聲音相似的字符串。但soundex 函數(shù)對數(shù)字和漢字均只返回0 值。

  例4-55:


·difference()
difference() 函數(shù)返回由soundex() 函數(shù)返回的兩個字符表達(dá)式的值的差異。其語法如下:
  difference (<character_expression1>, <character_expression2>)
  值的差異是用0、 1、 2、 3、 4 來表示的,含義如下:
  0--兩個soundex() 函數(shù)返回值的第一個字符不同
  1--兩個soundex() 函數(shù)返回值的第一個字符相同
  2--兩個soundex() 函數(shù)返回值的第一、二個字符相同
  3--兩個soundex() 函數(shù)返回值的第一、二、三個字符相同
  4--兩個soundex() 函數(shù)返回值完全相同

  例4-56:


5、字符串操作函數(shù)
字符串操作函數(shù)如下所示:
·quotename()
quotename() 函數(shù)返回被特定字符括起來的字符串,其語法如下:
quotename (<’character_expression’>[, quote_ character])
其中quote_ character 標(biāo)明括字符串所用的字符,如“‘”、“(”、“[” 等,缺省值為“[]”

  例4-57:


·replicate()
replicate() 函數(shù)返回一個重復(fù)character_expression 指定次數(shù)的字符串,其語法如下:
replicate (character_expression integer_expression)
如果integer_expression 值為負(fù)值,則replicate() 函數(shù)返回null 串。

  例4-58:


·reverse()
reverse() 函數(shù)將指定的字符串的字符排列順序顛倒,其語法如下:
reverse (<character_expression>)
其中character_expression 可以是字符串、常數(shù)或一個列的值。

  例4-59:


·replace()
replace() 函數(shù)返回被替換了指定子串的字符串,其語法如下:
replace (<string_expression1>, <string_expression2>, <string_expression3>)
replace() 函數(shù)用string_expression3 替換在string_expression1 中的子串string_expression2。

  例4-60:


·space()
space() 函數(shù)返回一個有指定長度的空白字符串,其語法如下:
space (<integer_expression>)
如果integer_expression 值為負(fù)值,則space() 函數(shù)返回null 串。

  例4-61:


·stuff()
stuf()函數(shù)用另一子串替換字符串指定位置、長度的子串,其語法如下:
stuff (<character_expression1>, <start_ position>, <length>,<character_expression2>)
如果起始位置為負(fù)或長度值為負(fù),或者起始位置大于character_expression1 的長度,則stuff() 函數(shù)返回null 值。如果length 長度大于character_expression1 的長度,則character_expression1 只保留首字符。

  例4-62:


6、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
在一般情況下,sql server 會自動完成數(shù)據(jù)類型的轉(zhuǎn)換,例如,可以直接將字符數(shù)據(jù)類型或表達(dá)式與datatime 數(shù)據(jù)類型或表達(dá)式比較當(dāng)表達(dá)式中用了integer、 smallint或tinyint 時,sql server 也可將integer 數(shù)據(jù)類型或表達(dá)式轉(zhuǎn)換為smallint數(shù)據(jù)類型或表達(dá)式,這稱為隱式轉(zhuǎn)換。如果不能確定sql server 是否能完成隱式轉(zhuǎn)換或者使用了不能隱式轉(zhuǎn)換的其它數(shù)據(jù)類型,就需要使用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)做顯式轉(zhuǎn)換了。此類函數(shù)有兩個:
·cast()
cast() 函數(shù)語法如下:
cast (<expression> as <data_ type>[ length ])

·convert()
convert() 函數(shù)語法如下:
convert (<data_ type>[ length ], <expression> [, style])

提醒: 1、data_type為sql server系統(tǒng)定義的數(shù)據(jù)類型,用戶自定義的數(shù)據(jù)類型不能在此使用。
2、length用于指定數(shù)據(jù)的長度,缺省值為30。
3、把char或varchar類型轉(zhuǎn)換為諸如int或samllint這樣的integer類型、結(jié)果必須是帶正號(+)或負(fù)號(-)的數(shù)值。
4、text類型到char或varchar類型轉(zhuǎn)換最多為8000個字符,即char或varchar數(shù)據(jù)類型是最大長度。
5、image類型存儲的數(shù)據(jù)轉(zhuǎn)換到binary或varbinary類型,最多為8000個字符。
6、把整數(shù)值轉(zhuǎn)換為money或smallmoney類型,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。
7、bit類型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以bit類型存儲。
8、試圖轉(zhuǎn)換到不同長度的數(shù)據(jù)類型,會截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識發(fā)生了這種截斷。

  例4-63:


  例4-64:


  例4-65:



用convert() 函數(shù)的style 選項能以不同的格式顯示日期和時間。style 是將datatime 和smalldatetime 數(shù)據(jù)轉(zhuǎn)換為字符串時所選用的由sql server 系統(tǒng)提供的轉(zhuǎn)換樣式編號,不同的樣式編號有不同的輸出格式。如表4-8 所示。


  例4-66:


7、日期函數(shù)
日期函數(shù)用來操作datetime 和smalldatetime 類型的數(shù)據(jù),執(zhí)行算術(shù)運(yùn)算。與其它函數(shù)一樣,可以在select 語句的select 和where 子句以及表達(dá)式中使用日期函數(shù)。其使用方法如下:
 日期函數(shù)參數(shù),其中參數(shù)個數(shù)應(yīng)不同的函數(shù)而不同。

·day()
day() 函數(shù)語法如下:
day (<date_expression>)
day() 函數(shù)返回date_expression 中的日期值。

  例4-67:


在上例中,day() 函數(shù)使用整數(shù)值作參數(shù),系統(tǒng)從1900 年1 月1 日起往后數(shù)指定整數(shù)值+1, 天再返回其日期。

·month()
month() 函數(shù)語法如下:
month (<date_expression>)
month() 函數(shù)返回date_expression 中的月份值。

  例4-68:


與day() 函數(shù)不同的是,month() 函數(shù)的參數(shù)為整數(shù)時,一律返回整數(shù)值1,即sql server 認(rèn)為其是1900 年1 月。

  例4-69:


·year()
year() 函數(shù)語法如下:
year (<date_expression>)
year() 函數(shù)返回date_expression 中的年份值。

  例4-70:


提醒:在使用日期函數(shù)時,其日期值應(yīng)在1753年到9999年之間,這是sql server系統(tǒng)所能識別的日期范圍,否則會出現(xiàn)錯誤。

  例4-71:


·dateadd()
dateadd() 函數(shù)語法如下:
dateadd (<datepart>, <number>, <date>)
dateadd() 函數(shù)返回指定日期date 加上指定的額外日期間隔number 產(chǎn)生的新日期。參數(shù)“datepart” 在日期函數(shù)中經(jīng)常被使用,它用來指定構(gòu)成日期類型數(shù)據(jù)的各組件,如年、季、月、日、星期等。其取值如表4-9 所示:


  例4-72:



·datediff()
datediff() 函數(shù)語法如下:
datediff() (<datepart>, <date1>, <date2>)
datediff() 函數(shù)返回兩個指定日期在datepart 方面的不同之處,即date2 超過date1的差距值,其結(jié)果值是一個帶有正負(fù)號的整數(shù)值。針對不同的datepart, datediff()函數(shù)所允許的最大差距值不一樣,如:datepart 為second 時,datediff() 函數(shù)所允許的最大差距值為68: 年datepart 為millisecond 時,datediff() 函數(shù)所允許的最大差距值為24 天20 小時30 分23 秒647 毫秒。

  例4-73: 查詢在本單位工作了8 年以上的員工的姓名和所在的部門,結(jié)果按在本單位工作的時間長短排序。


·datename()
datename() 函數(shù)語法如下:
datename (<datepart>, <date)>
datename() 函數(shù)以字符串的形式返回日期的指定部分此部分。由datepart 來指定。

  例4-74: 查詢工資大于等于7000 的員工的姓名、部門編號、工資和進(jìn)入單位的年份,結(jié)果按工資高低降序排列。


·datepart()
datepart() 函數(shù)語法如下:
datepart (<datepart>, <date>)
datepart() 函數(shù)以整數(shù)值的形式返回日期的指定部分。此部分由datepart 來指定。
datepart (dd, date) 等同于day (date)
datepart (mm, date) 等同于month (date)
datepart (yy, date) 等同于year (date)

  例4-75:


·getdate()
getdate() 函數(shù)語法如下:
getdate()
getdate() 函數(shù)以datetime 的缺省格式返回系統(tǒng)當(dāng)前的日期和時間,它常作為其它函數(shù)或命令的參數(shù)使用。

  例4-71:

菜鳥學(xué)堂:
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 梓潼县| 伊川县| 武山县| 东明县| 大新县| 微山县| 奇台县| 凌云县| 巫溪县| 绵竹市| 周口市| 陆河县| 新乡县| 广灵县| 桂阳县| 铅山县| 沙雅县| 荥阳市| 双牌县| 津市市| 房山区| 文成县| 昌黎县| 漠河县| 宾阳县| 遵义县| 区。| 商洛市| 乐都县| 闸北区| 交口县| 丹凤县| 永嘉县| 德格县| 泰安市| 长沙市| 桃源县| 龙州县| 兴文县| 婺源县| 靖安县|