SQL Server 常用函數使用方法(持續更新)

来源:http://www.cnblogs.com/Brambling/archive/2017/04/28/6779434.html
-Advertisement-
Play Games

之前就想要把一些 SQL 的常用函數記錄下來,不過一直沒有實行。。。嘿嘿。。。 直到今天用到substring()這個函數,C# 裡面這個方法起始值是 0,而 SQL 裡面起始值是 1。傻傻分不清楚。。。 這篇博客作為記錄 SQL 的函數的使用方法,想到哪裡用到哪裡就寫到哪裡。。。 SubStrin ...


之前就想要把一些 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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 主要涉及兩個技術點:1、圖標加灰色過濾;2、Android的圖片資源預設是靜態的,單實例;如果兩個IM好友的頭像一樣,最簡單的都是用的軟體自帶頭像,有一個線上,一個離線,直接改變頭像的灰度,則兩個用戶的頭像都會變灰或者線上,答案是:Drawable.mutate()。代碼如下: ...
  • 收錄待用,修改轉載已取得 "騰訊雲" 授權 前言 前面總結的幾篇spark踩坑博文中,我總結了自己在使用spark過程當中踩過的一些坑和經驗。我們知道Spark是多機器集群部署的,分為Driver/Master/Worker,Master負責資源調度,Worker是不同的運算節點,由Master統一 ...
  • BULK COLLECT(成批聚合類型)和數組集合type類型is table of 表%rowtype index by binary_integer用法筆記 例1: 批量查詢項目資金賬戶號為 "320001054663"的房屋賬戶信息並把它們列印出來 . 說明部分: 1. DECLARE 說明以 ...
  • 前言: 由於很多業務表因為歷史原因或者性能原因,都使用了違反第一範式的設計模式。即同一個列中存儲了多個屬性值(具體結構見下表)。 這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果。 表數據: 期望得到結果: 總結: 這種方法的缺點在於,我們需要一個擁有連續數列的獨立表(這裡是i ...
  • /** *@author:zhengwei *@date:2017-04-28 *@desc:存儲過程用法總結 */ CREATE OR REPLACE PROCEDURE MYPROCEDURE(P_ID IN VARCHAR, P_STATUS OUT VARCHAR) --P... ...
  • MongoVUE 不能正常顯示 Collections 問題的解決 ...
  • 1. 刪除所有MySQL中的用戶(包括root用戶): root可以保留,然後修改為其他用戶 2. 為管理員root用戶設置密碼 : A、為沒有密碼的用戶設置密碼: B、MySQL多實例設置密碼需要指定mysql.sock文件: C、新版本的mysql可能在第一次啟動以後會生成一個隨機密碼: D、直 ...
  • Data privacy is a major concern today for any organization that manages sensitive data or personally identifiable information (PII). Examples of such ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...