桂云秋 張磊 周揚(yáng) 朱臣
摘 要 數(shù)據(jù)庫查詢于處理中常常會(huì)遇到對(duì)字符串的處理,因此熟悉常見的字符串處理函數(shù)對(duì)數(shù)據(jù)庫的查詢機(jī)數(shù)據(jù)處理有非常重要的作用,下面簡(jiǎn)要介紹SQL server 2008中的常見的字符串處理函數(shù)。
關(guān)鍵詞 SQL server 2008 len函數(shù) left函數(shù)與right函數(shù) UBSTRING函數(shù)
數(shù)據(jù)庫查詢于處理中常常會(huì)遇到對(duì)字符串的處理,因此熟悉常見的字符串處理函數(shù)對(duì)數(shù)據(jù)庫的查詢機(jī)數(shù)據(jù)處理有非常重要的作用,下面簡(jiǎn)要介紹SQL server 2008中的常見的字符串處理函數(shù)。希望對(duì)讀者有所幫助。
1 len函數(shù)
Len函數(shù)能返回指定字符串表達(dá)式的字符數(shù),其中不包含尾隨空格。其語法格式為L(zhǎng)EN ( string_expression )。
以下示例在 Australia 地區(qū)的人的 FirstName 中選擇字符數(shù)和數(shù)據(jù)。
SELECT LEN(FirstName) AS Length, FirstName, LastName
FROM Sales.vIndividualCustomer
WHERE CountryRegionName = Australia;
2 left函數(shù)與right函數(shù)
Left函數(shù)返回字符串中從左邊開始指定個(gè)數(shù)的字符。其語法格式為L(zhǎng)EFT ( character_expression , integer_expression )。
其中character_expression 可以是常量、變量或列。character_expression 可以是任何能夠隱式轉(zhuǎn)換為 varchar 或 nvarchar 的數(shù)據(jù)類型,但 text 或 ntext 除外。integer_expression為正整數(shù),指定 character_expression 將返回的字符數(shù)。
以下示例返回每個(gè)產(chǎn)品名中最左邊的五個(gè)字符。
SELECT LEFT(Name, 5)
FROM Production.Product
ORDER BY ProductID;
right函數(shù)和left函數(shù)的語法和用法類似,只是返回字符串中從右邊邊開始指定個(gè)數(shù)的字符,這里不再詳細(xì)說明。
3 replace函數(shù)
replace函數(shù)可以實(shí)現(xiàn)用另一個(gè)字符串值替換出現(xiàn)的所有指定字符串值。其語法格式為REPLACE ( string_expression1 , string_expression2 , string_expression3 )。其中,string_expression1為要搜索的字符串表達(dá)式。string_expression1 可以是字符或二進(jìn)制數(shù)據(jù)類型。string_expression2為要查找的子字符串。string_expression2 可以是字符或二進(jìn)制數(shù)據(jù)類型。string_expression3為替換字符串。string_expression3 可以是字符或二進(jìn)制數(shù)據(jù)類型。
以下示例使用 xxx 替換 abcdefghi 中的字符串 cde。
SELECT REPLACE(abcdefghicde,cde,xxx);
4 SUBSTRING函數(shù)
SUBSTRING函數(shù)返回字符表達(dá)式、二進(jìn)制表達(dá)式、文本表達(dá)式或圖像表達(dá)式的一部分。其語法格式為SUBSTRING ( value_expression ,start_expression , length_expression )。其中, value_expression為需要處理的字符串。start_expression為指定返回字符的起始位置的整數(shù)。length_expression為是正整數(shù)或指定要返回的 value_expression 的字符數(shù)的 bigint 表達(dá)式。
以下示例說明如何只返回字符串的一部分。該查詢?cè)谝涣兄蟹祷?Contact 表中的姓氏,在另一列中只返回名字首字母。
SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Contact
WHERE LastName like Barl%
對(duì)于 ntext、char 或 varchar 數(shù)據(jù)類型,必須以字符數(shù)指定 start_expression 和 length_expression 的值;對(duì)于 text、image、binary 或 varbinary 數(shù)據(jù)類型,則必須以字節(jié)數(shù)指定。當(dāng) start_expression 或 length_expression 包含的值大于 2147483647 時(shí),value_expression 的數(shù)據(jù)類型必須為 varchar(max) 或 varbinary(max)。
參考文獻(xiàn)
[1] 杜佰林.網(wǎng)絡(luò)數(shù)據(jù)庫SQL Server 2000[M].清華出版社,2009,9.
[2] 何薇,舒后.網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)與應(yīng)用[M].清華大學(xué)出版社,2014,10.