溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQL Server函數(shù)大全

發(fā)布時(shí)間:2020-08-06 16:23:59 來(lái)源:網(wǎng)絡(luò) 閱讀:319 作者:hcwj 欄目:網(wǎng)絡(luò)安全

SQL Server函數(shù)大全

SQL Server中的函數(shù)對(duì)于提高查詢的工作效率起到了非常突出的作用。善于在查詢工作或開(kāi)發(fā)工作中利用好SQL函數(shù),將對(duì)工作有很大的幫助,同時(shí)也會(huì)大大提升工作的效率。但是由于SQL函數(shù)種類眾多。所以在使用的時(shí)候往往會(huì)無(wú)法全部理解它們的含義和用法。下面將詳細(xì)對(duì)SQL函數(shù)的含義和使用方法做一個(gè)比較系統(tǒng)的介紹:

在實(shí)際工作中,select語(yǔ)句中只能使用SQL函數(shù)對(duì)字段進(jìn)行操作,常見(jiàn)的函數(shù)可以分為以下幾大類:

1、字符轉(zhuǎn)換函數(shù)

1)ASCII()

返回字符表達(dá)式最左端字符的ASCII 碼值。在ASCII()函數(shù)中,純數(shù)字的字符串可不用‘’括起來(lái),但含有其它字符的字符串必須用‘’括起來(lái)使用,否則會(huì)出錯(cuò)。

2)CHAR()

將ASCII 碼轉(zhuǎn)換為字符。如果沒(méi)有輸入0 ~ 255 之間的ASCII 碼值,CHAR() 返回NULL 。

3)LOWER()和UPPER()

LOWER()將字符串全部轉(zhuǎn)為小寫;UPPER()將字符串全部轉(zhuǎn)為大寫。

4)STR()

把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。

STR (<float_expression>[,length[, <decimal>]])

length 指定返回的字符串的長(zhǎng)度,decimal 指定返回的小數(shù)位數(shù)。如果沒(méi)有指定長(zhǎng)度,缺省的length 值為10, decimal 缺省值為0。

在length 或者decimal 為負(fù)值時(shí),返回NULL;

在length 小于小數(shù)點(diǎn)左邊(包括符號(hào)位)的位數(shù)時(shí),返回length 個(gè)*;

先服從length ,再取decimal ;

當(dāng)返回的字符串位數(shù)小于length ,左邊補(bǔ)足空格。

2、去空格函數(shù)

1)LTRIM() 去除字符串頭部的空格。

2)RTRIM() 去除字符串尾部的空格。

3、字符串比較函數(shù)

1)CHARINDEX()

返回字符串中某個(gè)指定的子串所出現(xiàn)的開(kāi)始位置。

CHARINDEX (<’substring_expression’>, <expression>)

其中substring _expression 是所要查找的字符表達(dá)式,expression可為字符串也可為列名表達(dá)式。如果沒(méi)有發(fā)現(xiàn)子串,則返回0 值。

此函數(shù)不能用于TEXT和IMAGE數(shù)據(jù)類型。

2)PATINDEX()

返回字符串中某個(gè)指定的子串出現(xiàn)的開(kāi)始位置。

PATINDEX (<’%substring _expression%’>, <column_ name>) 其中子串表達(dá)式前后必須有百分號(hào)“%”否則返回值為0。

與CHARINDEX 函數(shù)不同的是,PATINDEX函數(shù)的子串中可以使用通配符,且此函數(shù)可用于CHAR、 VARCHAR 和TEXT數(shù)據(jù)類型。

4、字符串操作函數(shù)

1)QUOTENAME()

返回被特定字符括起來(lái)的字符串。

QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 標(biāo)明括起來(lái)的字符串所用的字符,缺省值為“[]”。

2)REPLICATE()

返回一個(gè)重復(fù)character_expression指定次數(shù)的字符串。

REPLICATE (character_expression integer_expression) 如果integer_expression 值為負(fù)值,則返回NULL 。

3)REVERSE()

將指定的字符串的字符排列順序顛倒。

REVERSE (<character_expression>) 其中character_expression 可以是字符串、常數(shù)或一個(gè)列的值。

4)REPLACE()

返回被替換了指定子串的字符串。

REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替換在string_expression1 中的子串string_expression2。

5)SPACE()

返回一個(gè)有指定長(zhǎng)度的空白字符串。

SPACE (<integer_expression>) 如果integer_expression 值為負(fù)值,則返回NULL 。

6)STUFF()

用另一子串替換字符串指定位置、長(zhǎng)度的子串。

STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)

如果起始位置為負(fù)或長(zhǎng)度值為負(fù),或者起始位置大于character_expression1 的長(zhǎng)度,則返回NULL 值。

如果length 長(zhǎng)度大于character_expression1 中 start_ position 以右的長(zhǎng)度,則character_expression1 只保留首字符。

5、取子串函數(shù)

1)left()

LEFT (<character_expression>, <integer_expression>)

返回character_expression 左起 integer_expression個(gè)字符。

2)RIGHT()

RIGHT (<character_expression>, <integer_expression>)

返回character_expression 右起 integer_expression個(gè)字符。

6、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

1)CAST()

CAST (<expression> AS <data_ type>[ length ])

2)CONVERT()

CONVERT (<data_ type>[ length ], <expression> [, style])

a)data_type為SQL Server系統(tǒng)定義的數(shù)據(jù)類型,用戶自定義的數(shù)據(jù)類型不能在此使用。

b)length用于指定數(shù)據(jù)的長(zhǎng)度,缺省值為30。

c)把CHAR或VARCHAR類型轉(zhuǎn)換為諸如INT或SAMLLINT這樣的INTEGER類型、結(jié)果必須是帶正號(hào)或負(fù)號(hào)的數(shù)值。

d)TEXT類型到CHAR或VARCHAR類型轉(zhuǎn)換最多為8000個(gè)字符,即CHAR或VARCHAR數(shù)據(jù)類型是最大長(zhǎng)度。

e)IMAGE類型存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換到BINARY或VARBINARY類型,最多為8000個(gè)字符。

f)把整數(shù)值轉(zhuǎn)換為MONEY或SMALLMONEY類型,按定義的國(guó)家的貨幣單位來(lái)處理,如人民幣、美元、英鎊等。

g)BIT類型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以BIT類型存儲(chǔ)。

h)試圖轉(zhuǎn)換到不同長(zhǎng)度的數(shù)據(jù)類型,會(huì)截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識(shí)發(fā)生了這種截?cái)唷?/p>

i)用CONVERT()函數(shù)的style 選項(xiàng)能以不同的格式顯示日期和時(shí)間。style 是將DATATIME 和SMALLDATETIME數(shù)據(jù)轉(zhuǎn)換為字符串時(shí)所選用的由SQL Server系統(tǒng)提供的轉(zhuǎn)換樣式編號(hào),不同的樣式編號(hào)有不同的輸出格式。

7、日期函數(shù)

1)day(date_expression)

返回date_expression中的日期值

2)month(date_expression)

返回date_expression中的月份值

3)year(date_expression)

返回date_expression中的年份值

4)DATEADD()

DATEADD (<datepart>, <number>, <date>)

返回指定日期date 加上指定的額外日期間隔number 產(chǎn)生的新日期。

5)DATEDIFF()

DATEDIFF (<datepart>, <date1>, <date2>)

返回兩個(gè)指定日期在datepart 方面的不同之處,即date2 超過(guò)date1的差距值,其結(jié)果值是一個(gè)帶有正負(fù)號(hào)的整數(shù)值。

6)DATENAME()

DATENAME (<datepart>, <date>)

以字符串的形式返回日期的指定部分此部分。由datepart 來(lái)指定。

7)DATEPART()

DATEPART (<datepart>, <date>)

以整數(shù)值的形式返回日期的指定部分。此部分由datepart 來(lái)指定。

DATEPART (dd, date) 等同于DAY (date)

DATEPART (mm, date) 等同于MONTH (date)

DATEPART (yy, date) 等同于YEAR (date)

8)GETDATE()

8、用戶自定義函數(shù)

1)標(biāo)量自定義函數(shù)

有一個(gè)確定的返回值

格式:Create function function_name [inputparameters]

Returns datatype

AS

Begin

code

return expression

End

調(diào)用方法:Select dbo.函數(shù)名

2)內(nèi)嵌表函數(shù)

格式:Creae function function_name (inputparameters)

Returns table

AS

Return (select code)

以DATETIME 的缺省格式返回系統(tǒng)當(dāng)前的日期和時(shí)間。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI