小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

T-SQL 實用函數(shù)總結 [轉(zhuǎn)]

 wwwijhyt圖書館 2014-05-09

T-SQL是微軟在關系型數(shù)據(jù)庫管理系統(tǒng)SQL Server中的SQL-3標準的實現(xiàn),是微軟對SQL的擴展,具有SQL的主要特點,同時增加了變量、運算符、函數(shù)、流程控制和注釋等語言元素,使得其功能更加強大。并且T-SQL自帶了許多實用的函數(shù),DBA可以利用這些函數(shù)來進行更有效地管理。

T-SQL字符串函數(shù)

T-SQL字符串函數(shù)---截取字符串的值

下面的一組函數(shù)詳細描述了如何截取字符串的一部分。這些函數(shù)大部分都包含在下面的SELECT語句中:

SELECT ProductName, 
LEFT(ProductName, 12AS A, 
SUBSTRING(ProductName, 94AS B, 
RIGHT(ProductName, 2AS C, 
RTRIM(ProductName) AS D 
FROM Products 

可以看到,SELECT語句中包括函數(shù)LEFT,SUBSTRING,RIGHT和RTRIM。執(zhí)行結果:

LEFT函數(shù)返回ProductName列的前12個字符。該函數(shù)有兩個參數(shù):第一個參數(shù)是字符串表達式,第二個參數(shù)是字符數(shù)。在這個例子中,字符串表達式是ProductName列,字符數(shù)是“12”。結果,ProductName列所有值的后半部分都被截掉了,只剩下12個字符返回。

RIGHT函數(shù)的用法也是一樣的,它截取字符串右邊的部分。

SUBSTRING函數(shù)可以提取字符串的任意部分。該函數(shù)有三個參數(shù):第一個參數(shù)是字符串表達式,第二個參數(shù)是指定從哪里開始截取,第三個參數(shù)表示截取多長的字符串。在上面的例子中,字符串表達式仍然是ProductName列。第二個參數(shù)“9”的意思是我們應該從第九個字符開始(截取),第三個參數(shù)“4”意思是獲取四個字符。

RTRIM的功能是去掉字符串(在第一個參數(shù)中指定)尾部的所有空格。RTRIM函數(shù)還有與它相對的另一個函數(shù):LTRIM函數(shù)。它會刪除字符串左側的空格。

T-SQL字符串函數(shù)---修改字符串的值

T-SQL還包括可以在SQL Server中修改字符串值的一組函數(shù)。下面的語句就是一個例子:

代碼
SELECT 
REPLACE(ProductName, 'Mountain''Mtn'AS ReplaceName, 
STUFF(ProductName, 112'x01'AS StuffName, 
REVERSE(ProductName) AS ReverseNum, 
STUFF(ProductName, 12REPLICATE(03)) AS ReplicateNum, 
ProductName + SPACE(4+ LOWER (ProductName) AS LowerProdLine 
FROM Products

SELECT語句中包括函數(shù)REPALCE,STUFF,REVERSE和REPLICATE,LOWER。執(zhí)行結果:

 

函數(shù)REPLACE,用來替換給定字符串值中指定的一組字符串為新的字符串。該函數(shù)有三個參數(shù):第一個參數(shù)是字符串表達式,第二個參數(shù)是被替換的字符串,第三個參數(shù)是要替換的新字符串。

函數(shù)STUFF,它的作用是按照給定的位置刪除一組指定的字符,并插入一組新的字符。該函數(shù)有四個參數(shù):第一個參數(shù)是待操作的字符串表達式,第二個參數(shù)是待刪除的字符串的起始位置,第三個參數(shù)是要刪除字符的數(shù)量,第四個參數(shù)是要插入的字符串。在上面的例子中,STUFF函數(shù)指定ProductName列為待操作的字符串。要刪除的字符串從第11個字符(第二個參數(shù))開始,刪除兩個字符(第三個參數(shù))。在那些字符刪除后,新字符(x01)被插入到該位置。

函數(shù)RESERVSE的作用是:把給定字符串按逆序排列。

函數(shù)REPLICATE,該函數(shù)可以把指定字符串值重復指定的次數(shù)。該函數(shù)有兩個參數(shù):第一個參數(shù)是待處理的字符串值,第二個參數(shù)是重復次數(shù)。在上面的例子中,“0”被重復了三次。

函數(shù)SPACE與函數(shù)REPLICATE類似,它返回一組空格。該函數(shù)有一個參數(shù),指定返回的空格數(shù)量。

函數(shù)LOWER,很簡單,它把字符串中的大寫字符轉(zhuǎn)換為小寫字符。

T-SQL字符串函數(shù)---轉(zhuǎn)換字符串值

T-SQL提供可以轉(zhuǎn)換字符串值的函數(shù),如下面的SELECT語句所示:

SELECT 
ProductName + CHAR(9+ STR(ProductID) AS Product, 
ASCII(ProductName) AsciiProductName, 
RTRIM(ProductName) AS ProductName, 
UNICODE(RTRIM(ProductName)) AS UnicodeProductName FROM Products

 SELECT語句中包括函數(shù)CHAR,STR,ASCII和RTRIM,UNICODE。執(zhí)行結果:

第一個函數(shù)是CHAR,可以把一個ASCII碼整數(shù)(從0到255)轉(zhuǎn)換為字符,該函數(shù)只有一個參數(shù)(一個ASCII碼整數(shù)值)。該函數(shù)在給你的字符串插入控制字符時非常方便,比如tab鍵(ASCII碼為9),換行符號(ASCII碼為10)或者回車符(ASCII碼為13)。

函數(shù)STR,它可以把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。STR函數(shù)的參數(shù)是待轉(zhuǎn)換的數(shù)值型表達式。

T-SQL還支持ASCII函數(shù),可以轉(zhuǎn)換單個字符為ASCII碼整數(shù)。

UNICODE函數(shù),該函數(shù)用來把一個字符轉(zhuǎn)換為Unicode整數(shù)。該函數(shù)只有一個參數(shù):Unicode字符表達式。

T-SQL字符串函數(shù)---獲取字符串的相關信息

還有一些函數(shù)可以提供與字符串有關的信息,比如字符串長度或者值內(nèi)部子串的位置。下面的SELECT語句就演示了幾個提供字符串相關信息的函數(shù):

SELECT LEN(ProductName) AS LengthProductName, 
CHARINDEX('Bob', ProductName) AS CharIndexProductName,
PATINDEX('%Pears%', ProductName) AS PatIndexProductName 
FROM Products WHERE ProductID=7

SELECT語句中包括函數(shù)CHAR,STR,ASCII和RTRIM,UNICODE。執(zhí)行結果:

 

函數(shù)LEN返回指定字符串的字符數(shù)量。該函數(shù)只有唯一參數(shù)就是待計數(shù)的字符串。

函數(shù)CHARINDEX的功能是從某字符串中指定的開始位置查找某字符串所在位置。該函數(shù)有三個參數(shù):第一個參數(shù)是要搜索的字符串,第二個參數(shù)是待搜索范圍字符串,第三個參數(shù)是搜索開始的位置。最后一個參數(shù)是可選的。在上面的例子中,我們在ProductName列中搜索Bob第一次出現(xiàn)的位置,它是從字符串的第7個位置開始的。

函數(shù)PATINDEX。該函數(shù)在字符串中搜索第一次出現(xiàn)某字符串的位置。該函數(shù)有兩個參數(shù):第一個參數(shù)是要匹配的字符串,第二個參數(shù)是在其中進行搜索的字符串??梢杂猛ㄅ浞x匹配模式,提供靈活的搜索模式類型。然而,如果你使用通配符“%”,你必須在待搜索字符的前面或者后面都加上它,除非你搜索以指定字符串開頭或結尾的匹配。例如,在上面的語句中,“%Pears%”被指定為在ProductName值中搜索的匹配模式。結果顯示,第一次匹配的實例在第27個字符位置。

T-SQL集合函數(shù)

T-SQL集合函數(shù)---基礎函數(shù)

在操作SQL Server數(shù)據(jù)庫中的數(shù)據(jù)時,有時你可能會需要對一組數(shù)值執(zhí)行計算。此處灰?;A,就不過多說了。

MAX函數(shù):最大值函數(shù)。MIN函數(shù):最小值函數(shù)。AVG函數(shù):平均值函數(shù)。SUM函數(shù):求和函數(shù)。COUNT函數(shù):總計函數(shù)。

利用集合函數(shù)處理分組數(shù)據(jù)的時候,可以使用ROLLUP,CUBE或者GOURPING SETS操作符來指定包含在結果集中的附加統(tǒng)計數(shù)據(jù)。

T-SQL集合函數(shù)---獲取統(tǒng)計數(shù)據(jù)

SQL Server有四個集合函數(shù)可以支持你對數(shù)值型列的一組值做數(shù)據(jù)統(tǒng)計:

STDEV:返回值的統(tǒng)計標準方差。
STDEVP:返回總體值的統(tǒng)計標準方差。
VAR:返回值的統(tǒng)計方差。
VARP:返回總體值的統(tǒng)計方差。

SELECT STDEV(UnitPrice) AS StdevPrice, 
STDEVP(UnitPrice) AS StdevpPrice, 
VAR(UnitPrice) AS VarPrice, 
VARP(UnitPrice) AS VarpPrice FROM Products

執(zhí)行結果:

T-SQL 系統(tǒng)函數(shù) 

SQL Server內(nèi)建有可以支持你執(zhí)行各種任務的函數(shù),比如轉(zhuǎn)換數(shù)據(jù),操作字符串值,以及執(zhí)行數(shù)學計算的函數(shù)。一些SQL Server函數(shù)被歸類為系統(tǒng)函數(shù),這些函數(shù)支持你查看關于更新和插入操作的信息,提取服務器屬性設置,訪問當前會話及其用戶的詳細信息。你還可以利用系統(tǒng)函數(shù)執(zhí)行許多語言相關的任務。

T-SQL系統(tǒng)函數(shù)---查看有關數(shù)據(jù)修改的信息 

SQL Server的一些系統(tǒng)函數(shù)支持獲取你的更新和插入操作的明細信息。例如,你可以獲取插入到某個表中的最后一個標識值,或者對某個表增加或者更新的行數(shù)。要展示這些函數(shù)如何使用,我定義了下面的表并給它填充了幾行數(shù)據(jù):

代碼
USE Northwind; 
IF OBJECT_ID('TableA''U'IS NOT NULL 
DROP TABLE dbo.TableA; 
CREATE TABLE dbo.TableA 

ColA INT IDENTITY(101100NOT NULL
ColB VARCHAR(20NOT NULL
); 
INSERT INTO TableA (ColB) VALUES('red'); 
INSERT INTO TableA (ColB) VALUES('blue'); 
INSERT INTO TableA (ColB) VALUES('green'); 
INSERT INTO TableA (ColB) VALUES('yellow'); 
INSERT INTO TableA (ColB) VALUES('orange'); 

SELECT * FROM TableA;

 現(xiàn)在,我們來看一個例子,其中使用了幾個系統(tǒng)函數(shù)提取關于剛插入上面那個表的數(shù)據(jù)相關的信息。下面的“SELECT語句”包括五個函數(shù),其中三個與身份列值有關,而另兩個與行數(shù)有關:

SELECT 
IDENT_CURRENT('TableA'AS LastValue, 
IDENT_SEED('TableA'AS SeedValue,
IDENT_INCR('TableA'AS IncrValue, 
@@ROWCOUNT AS RowsAffected, 
ROWCOUNT_BIG() AS BigRowsAffected;

執(zhí)行結果:

第一個函數(shù)是IDENT_CURRENT,它提取插入表“TableA”的最后一個身份值。如你所見,表“TableA”被指定為該函數(shù)的一個入?yún)?。該函?shù)返回的信息與添加數(shù)據(jù)時的會話無關,也與添加時執(zhí)行的語句范圍無關。這一點非常重要,因為SQL Server支持其他身份相關的函數(shù),包括專門針對當前會話(@@IDENTITY)和當前范圍和會話(SCOPE_IDENTITY)的函數(shù)。

IDENT_SEED函數(shù)返回起始值,而IDENT_INCR函數(shù)返回增量值。

@@ROWCOUNT 函數(shù)返回最后一個語句影響的行數(shù)?!癛OWCOUNT_BIG”函數(shù)也做同樣的事情,唯一區(qū)別是返回值類型是bigint。如果你預計影響的行數(shù)會多于20億條數(shù)據(jù),你應該使用這個函數(shù)。要注意,這兩個函數(shù)都不是關聯(lián)于某個表的,因為這兩個函數(shù)基于最后一條執(zhí)行的語句獲取數(shù)據(jù)。

T-SQL系統(tǒng)函數(shù)---查看服務器屬性

有時,你可能想要檢索特定的服務器屬性值,這種情況下,你可以使用“SERVERPROPERTY”函數(shù)。該函數(shù)有一個參數(shù)(屬性名稱),請看下面的示例:

SELECT 
SERVERPROPERTY('Edition'AS SrvEdition, 
SERVERPROPERTY('InstanceName'AS SrvInstance, 
SERVERPROPERTY('Collation'AS SrvCollation;

在這個“SELECT”語句中,我檢索了“Edition”,“InstanceName ”和“Collation ”屬性的設置,它們以參數(shù)的形式傳遞到函數(shù)中。該“SELECT”語句返回下面結果:

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多