SQL Server字串處理函式大全

shwenwen發表於2008-08-13
SQL Server字串處理函式大全[@more@]select 欄位1 from 表1 where 欄位1.IndexOf("雲")=1;
這條語句不對的原因是indexof()函式不是sql函式,改成sql對應的函式就可以了。
left()是sql函式。
select 欄位1 from 表1 where charindex('雲',欄位1)=1; 字串函式對二進位制資料、字串和表示式執行不同的運算。此類函式作用於CHAR、VARCHAR、 BINARY、 和VARBINARY 資料型別以及可以隱式轉換為CHAR 或VARCHAR的資料型別。可以在SELECT 語句的SELECT 和WHERE 子句以及表示式中使用字串函式。
常用的字串函式有:

一、字元轉換函式
1、ASCII()
返回字元表示式最左端字元的ASCII 碼值。在ASCII()函式中,純數字的字串可不用‘’括起來,但含字元的字串必須用‘’括起來使用,否則會出錯。
2、CHAR()
將ASCII 碼轉換為字元。如果沒有輸入0 ~ 255 之間的ASCII 碼值,CHAR() 返回NULL 。
3、LOWER()和UPPER()
LOWER()將字串全部轉為小寫;UPPER()將字串全部轉為大寫。
4、STR()
把數值型資料轉換為字元型資料。
STR ([,length[, ]])
length 指定返回的字串的長度,decimal 指定返回的小數位數。如果沒有指定長度,預設的length 值為10, decimal 預設值為0。
當length 或者decimal 為負值時,返回NULL;
當length 小於小數點左邊(包括符號位)的位數時,返回length 個*;
先服從length ,再取decimal ;
當返回的字串位數小於length ,左邊補足空格。
二、去空格函式
1、LTRIM() 把字串頭部的空格去掉。

2、RTRIM() 把字串尾部的空格去掉。

三、取子串函式
1、left()
LEFT ()
返回character_expression 左起 integer_expression 個字元。

2、RIGHT()
RIGHT ()
返回character_expression 右起 integer_expression 個字元。

3、SUBSTRING()
SUBSTRING (, length)
返回從字串左邊第starting_ position 個字元起length個字元的部分。

四、字串比較函式
1、CHARINDEX()
返回字串中某個指定的子串出現的開始位置。
CHARINDEX (, )
其中substring _expression 是所要查詢的字元表示式,expression 可為字串也可為列名錶達式。如果沒有發現子串,則返回0 值。
此函式不能用於TEXT 和IMAGE 資料型別。
2、PATINDEX()
返回字串中某個指定的子串出現的開始位置。
PATINDEX (, )其中子串表示式前後必須有百分號“%”否則返回值為0。
與CHARINDEX 函式不同的是,PATINDEX函式的子串中可以使用萬用字元,且此函式可用於CHAR、 VARCHAR 和TEXT 資料型別。

五、字串操作函式
1、QUOTENAME()
返回被特定字元括起來的字串。
QUOTENAME ([, quote_ character]) 其中quote_ character 標明括字串所用的字元,預設值為“[]”。
2、REPLICATE()
返回一個重複character_expression 指定次數的字串。
REPLICATE (character_expression integer_expression) 如果integer_expression 值為負值,則返回NULL 。

3、REVERSE()
將指定的字串的字元排列順序顛倒。
REVERSE () 其中character_expression 可以是字串、常數或一個列的值。

4、REPLACE()
返回被替換了指定子串的字串。
REPLACE () 用string_expression3 替換在string_expression1 中的子串string_expression2。

4、SPACE()
返回一個有指定長度的空白字串。
SPACE () 如果integer_expression 值為負值,則返回NULL 。

5、STUFF()
用另一子串替換字串指定位置、長度的子串。
STUFF ()
如果起始位置為負或長度值為負,或者起始位置大於character_expression1 的長度,則返回NULL 值。
如果length 長度大於character_expression1 中 start_ position 以右的長度,則character_expression1 只保留首字元。

六、資料型別轉換函式
1、CAST()
CAST ( AS [ length ])

2、CONVERT()
CONVERT ([ length ], [, style])

1)data_type為SQL Server系統定義的資料型別,使用者自定義的資料型別不能在此使用。
2)length用於指定資料的長度,預設值為30。
3)把CHAR或VARCHAR型別轉換為諸如INT或SAMLLINT這樣的INTEGER型別、結果必須是帶正號或負號的數值。
4)TEXT型別到CHAR或VARCHAR型別轉換最多為8000個字元,即CHAR或VARCHAR資料型別是最大長度。
5)IMAGE型別儲存的資料轉換到BINARY或VARBINARY型別,最多為8000個字元。
6)把整數值轉換為MONEY或SMALLMONEY型別,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。
7)BIT型別的轉換把非零值轉換為1,並仍以BIT型別儲存。
8)試圖轉換到不同長度的資料型別,會截短轉換值並在轉換值後顯示“+”,以標識發生了這種截斷。
9)用CONVERT()函式的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 資料轉換為字串時所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。
七、日期函式
1、day(date_expression)
返回date_expression中的日期值

2、month(date_expression)
返回date_expression中的月份值

3、year(date_expression)
返回date_expression中的年份值

4、DATEADD()
DATEADD ()
返回指定日期date 加上指定的額外日期間隔number 產生的新日期。
5、DATEDIFF()
DATEDIFF ()
返回兩個指定日期在datepart 方面的不同之處,即date2 超過date1的差距值,其結果值是一個帶有正負號的整數值。

6、DATENAME()
DATENAME ()
以字串的形式返回日期的指定部分此部分。由datepart 來指定。

7、DATEPART()
DATEPART ()
以整數值的形式返回日期的指定部分。此部分由datepart 來指定。
DATEPART (dd, date) 等同於DAY (date)
DATEPART (mm, date) 等同於MONTH (date)
DATEPART (yy, date) 等同於YEAR (date)

8、GETDATE()
以DATETIME 的預設格式返回系統當前的日期和時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/143526/viewspace-1008900/,如需轉載,請註明出處,否則將追究法律責任。

相關文章