首頁  >  文章  >  資料庫  >  總結SQL Server中常用函數使用方法

總結SQL Server中常用函數使用方法

巴扎黑
巴扎黑原創
2017-08-11 15:26:461935瀏覽

這篇文章主要介紹了SQL Server 常用函數使用方法小結,需要的朋友可以參考下

之前就想要把一些 SQL 的常用函數記錄下來,不過一直沒有實行。 。 。嘿嘿。 。 。

直到今天用到substring()這個函數,C# 裡面這個方法起始值是 0,而 SQL 裡面起始值是 1。傻傻分不清楚。 。 。

這篇部落格作為記錄 SQL 的函數的使用方法,想到哪裡用到哪裡就寫到哪裡。 。 。

SubString():用來截取指定字串的方法。此方法有三個參數:

參數1:用於指定要操作的字串。

參數2:用於指定要截取的字串的起始位置,起始值為 1 。

參數3:用於指定要截取的長度。


select substring('abcdef',1,3)  -- 返回 abc
select substring('123456321',0,2)  -- 返回 1,即第一位,最好不要这样做

Left():用於傳回指定字串中指定長度的左側部分。此方法有兩個參數:

參數1:用於指定要操作的字串。

參數2:用於指定要傳回的子字串的長度。


select LEFT('abc123',3)    -- 返回 abc
select LEFT('左侧部分右侧部分',4)  -- 返回 左侧部分

Right():用於傳回指定字串中指定長度的右側部分。此方法有兩個參數:

參數1:用於指定要操作的字串。

參數2:用於指定要傳回的子字串的長度。


select RIGHT('abc123',3)    -- 返回 123
select RIGHT('左侧部分右侧部分',4)  -- 返回 右侧部分

CharIndex():用於傳回指定字串中指定子字串出現的起始位置。如果未找到就回傳 0。此方法有兩個參數:

參數1:用於指定要進行尋找的字串。

參數2:用於指定用作檢索的字串。


select charindex('a','123a123')    -- 返回 4
select charindex('abc','123a123')  -- 返回 0
select charindex('abc','123abc123')  -- 返回 4

Stuff():用於刪除指定長度的字符,並在刪除的位置插入新的字符/值。此方法有四個參數:

參數1:用於指定要操作的字串。

參數2:用於指定要刪除字元的起始位置。

參數3:用於指定要刪除字元的長度。

參數4:用於指定在刪除的位置插入的新的字串/值。


select stuff('123abc456',4,3,'ABC')    -- 返回 123ABC456
select stuff('123abc456',1,3,'')  -- 返回 abc456,用空字符串替代

 Len():用於傳回指定文字的值的長度。前導空格計算在內,尾隨空格不計算在內。此方法有一個參數:

參數1:用於指定要操作的文字或字串。


select len('123')  -- 返回 3
select len('字符串')  -- 返回 3

Difference():用於傳回整數值,指示兩個字元運算式的 SOUNDEX 值之間的差異。 (即兩個字串的相似度)那麼什麼是 SOUNDEX 值呢?先記著,下面輪到它了。

傳回的值從 0 到 4 不等:0 表示幾乎不同或完全不同,4 表示幾乎相同或完全相同。此方法有兩個參數:

參數1:用於指定要進行比對的第一個字串 SOUNDEX 值 。

參數2:用於指定要進行比對的第二個字串 SOUNDEX 值。


select difference('action','demo')    -- 返回 2
select difference('123456','整数')    -- 返回 4

Soundex():用於傳回指定字串的 SOUNDEX 值。 SOUNDEX是一種語音演算法,利用英文字的發音計算近似值,數值由四個字元構成,第一個字元為英文字母,後三個為數字。在拼音文字中有時會有會念但不能拼出正確字的情形,可用 Soundex 做類似模糊匹配的效果。這裡的模糊匹配跟 LIKE 不同。

演算法簡單說明:


-- 将英文字按以下规则替换(不使用第一个字符进行匹配,并且不使用对应值为 0 的英文字符的值)
  a e h i o u w y -> 0
  b f p v -> 1
  c g j k q s x z -> 2
  d t -> 3
  l -> 4
  m n -> 5
  r -> 6

如果字串中存在擁有相同對應數字的2個或以上的字母在一起(例如j 和k) ,則刪除其他的,只保留1個。移除對應值為 0 的字符,只傳回前4個字節,不夠用 0 填滿。


select soundex('string')  -- 返回 S215
select soundex('str')  -- 返回 S210
select soundex('123')  -- 返回 0000
select soundex('字符串')  -- 返回 0000

PS:除英文字元以外的字元都會傳回 0000,所以上面的方法 Difference() 的第二個範例會回傳4(表示完全相同)。

Lower():用來傳回指定英文字串的小寫形式的字串。如果不為英文字串,則傳回原值。此方法有一個參數:

參數1:用於指定要轉換為小寫形式的字串。


select lower('ABC')    -- 返回 abc
select lower('123')  -- 返回 123

Upper():用於傳回指定英文字串的大寫形式的字串。如果不為英文字串,則傳回原值。此方法有一個參數:

參數1:用於指定要轉換為大寫形式的字串。


select upper('abc')    -- 返回 ABC
select upper('123')  -- 返回 123

Ltrim():用於傳回刪除前導空格之後的字串。此方法有一個參數:

參數1:用於指定要進行刪除前導空格操作的字串。


select ltrim('    123')    -- 返回 123
select ltrim('    好多空格')  -- 返回 好多空格
select len('    123')  -- 返回 11
select len(ltrim('    123')) -- 返回 3

Rtrim():用於傳回截斷尾隨空格之後的字串。此方法有一個參數:

參數1:用於指定要進行截斷尾隨空格操作的字串。


select rtrim('123     ')    -- 返回 123
select len(rtrim('123     ')) -- 返回 3

Replace():用第三個表達式取代第一個字串表達式中出現的所有第二個給定字串表達式。此方法有三個參數:

參數1:用於指定要操作的字串,即被符合的字串。

參數2:用於指定要進行符合的字串。

參數3:用於指定用作替換存在的匹配項的字串。


--把 abc 替换为 xxx 
select replace('123abc456','abc','xxx')    -- 返回 123xxx456
-- 用空字符串替换匹配项
select replace('123abc456','abc','')  -- 返回 123456

以上是總結SQL Server中常用函數使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn