SQLServer系統函數之字元串函數

来源:https://www.cnblogs.com/vic-tory/archive/2020/01/03/11459780.html
-Advertisement-
Play Games

一.字元串函數 參數character_expression:由字元數據組成的字母數字表達式,可以是常量或變數,也可以是字元列或二進位數據列 參數integer_expression:是正整數,如果 integer_expression 為負,則返回空字元串 1.SubString():截取指定的字 ...


一.字元串函數

參數character_expression:由字元數據組成的字母數字表達式,可以是常量或變數,也可以是字元列或二進位數據列

參數integer_expression:是正整數,如果 integer_expression 為負,則返回空字元串

 1.SubString():截取指定的字元串

--substring(character_expression,integer_experssion,integer_expression)
--character_expression: 表達式(varchar、nvarchar、char、text、ntext、varbinary、image)
--integer_experssion:開始位置(bigint)
--integer_expression 長度(bigint)不能為負數
--返回字元表達式、二進位表達式、文本表達式或者圖像表達式的一部分(varchar、nvarchar、char、text、ntext、varbinary、image)
--簡而言之:substring(字元串,開始位置,截取長度)
select substring('Hello',1,4)  --返回Hell
select StuName,substring(StuName,1,2) as '姓名的前兩位' from Student 

2.Replace ():替換字元串 

--replace(character_expression,searchstring,replacementstring)
--character_expression:是函數要搜索的有效字元表達式(varchar,nvarchar)
--character_expression:是函數嘗試定位的有效字元表達式(varchar,nvarchar)
--replacementstring:是用作替換表達式的有效字元表達式(varchar,nvarchar)
--返回用第三個表達式替換第一個表達式中出現的所有第二個表達式
--簡而言之:replace(字元串,需要被替換的字元串,替換成的字元串)
select replace('MingRMRM','RM','Ri') --返回MingRiRi
select replace('1234','1','2') --返回2234 

3.Left():取左邊指定個數的字元

--left(character_expression,integer_expression)
--character_expression:字元串或者二進位數據表達式(varchar,nvarchar)
--integer_expression:指定character_expression將返回的字元數,不能為負數(int)
--返回字元表達式中最左側指定數目的字元
--簡而言之:left(字元串,指定最左側返回的數目)
select left('中華有為',2) --返回中華
select left(StuName,1) from Student --返回姓名的第一個字

4.Right():取右邊指定個數的字元

--right(character_expression,integer_expression)
--character_expression:字元串或者二進位數據表達式(varchar,nvarchar)
--integer_expression:指定character_expression將返回的字元數,不能為負數(int)
--返回字元表達式中最右側指定數目的字元
--簡而言之:right(字元串,指定最右側返回的數目)
select right('中華有為',2) --返回有為
select right(StuName,1) from Student --返回姓名的最後一個字

5.ASCII():獲取ASCII碼

--ASCII(character_expression)
--character_expression:char或者varchar類型的表達式(char、varchar)
--返回字元表達式中最左側的字元的ASCII代碼
--返回類型:int
--註意:ASCII碼共127個,其中8、9、10、13分別轉換為退格、製表、換行和回車字元
select ASCII('A') --返回ASCII碼65 按鍵A
select ASCII(' ') --返回ASCII碼32 按鍵[space] 空格鍵

6.Char():轉換成字元

--char(integer_expression)
--將整數ASCII代碼轉換成字元串
select char(65) --返回A 
select char(32) --返回空格

7.CharIndex():返回字元串起始位置

--charindex(character_expression1,character_expression2,[,start_location])
--character_expression1:包含要查找的序列的字元串表達式
--character_expression2:要搜索的字元表達式
--start_location:開始位置,如果未指定則將expression2的開頭搜索
--返回字元串中指定表達式的起始位置
--[]裡面的內容說明可以省略,預設情況下,說明用‘[]’引用
select charindex('','中華有為')--返回4
select charindex('','中華有為',5) --返回0  搜索字元串的位置值有4位
select charindex('','中華有為',2)--返回4  返回的是字元串所在搜索字元串的位置

8.PatIndex()返回表達式模式的字元串的起始位置

--patindex(character_expression1,characterexpression2)
--character_expression1:搜索模式文字
--character_expression2:要搜索的表達式
-- 精確匹配,完全匹配1,不完全匹配0
--模糊匹配,返回從第幾位開始匹配
--返回指定表達式模式的第一次出現的開始位置
select patindex('%a%','123456a') --返回6 模糊匹配
select patindex('a','123456a') --返回0 精確匹配

9.Len():返回字元個數

--len(character_expression)
--character_expression:表示要處理的表達式(varchar、nvarchar)
--返回字元表達式中的字元數(int)
select len('abcd')--返回4
select len(12345)--返回5

10.Stuff():在一個字元串中,刪除指定長度的字元,併在該位置插入一個新的字元串

--stuff(character_expression,bigint_expression1,bigint_expression2,character_expression1)
--character_expression:要搜索的表達式(varchar、nvarchar、varbinary)
--integer_expression1:開始位置
--integer_expression2:字元數
--character_expression1:替換的表達式
select stuff('abcdefg',3,2,'aa') --返回abaaefg

11.Difference():SOUNDEX值之差

--difference ( character_expression , character_expression )
--character_expression:類型 char 或 varchar 的表達式
--以整數返回兩個字元表達式的SOUNDEX值之差,返回的值從 0 到 4 不等,4 表示 SOUNDEX 值相同
--返回類型:int
SELECT  DIFFERENCE('Test', 'Test') --4

12.Soundex():由四個字元表示的soundex代碼

--soundex(character_expression)
--返回由四個字元表示的soundex代碼
select soundex('abcd') --返回A120

13.Lower():大寫字母轉小寫字母

--lower(character_expression)
--character_expression:字元串或者二進位數據表達式(varchar、nvarchar)
--返回將大寫字元轉換為小寫字元的字元表達式
select lower('ABCD') --返回abcd
select lower('張San') --返回張san

14.Upper():小寫字母轉大寫字母

--upper(character_expression)
--character_expression:字元串或者二進位數據表達式(varchar、nvarchar)
--返回將小寫字元轉換為大寫字元的字元表達式
select  upper('abcd') --返回ABCD
select  upper('張San') --返回張SAN

15.Ltrim():清除左邊字元的空格

--ltrim(character_expression)
--character_expression(varchar、nvarchar)
--返回刪除了前導空格之後的字元表達式
select ltrim('   Test Test ') --返回Test Test

16.Rtrim():清除右邊字元的空格

--rtrim(character_expression)
--character_expression(varchar、nvarchar)
--返回截斷了所有尾隨空格之後的字元表達式
select rtrim('   TestTest  ') --返回  TestTest

17.Nchar():給定的整數代碼的Unicode字元

--nchar(integer_expression)
--integer_expression(int)
--返回具有給定的整數代碼的Unicode字元
--Unicode:統一碼、萬國碼、單一碼
select nchar(100) --返回d

18.Quotename():返回帶有分隔符的 Unicode 字元串,主要作用就是在SQL語句中,給列名、表名等加個[]、’’

--quotename(character_expression,[,character_expression1])
--character_expression,unicode字元數據構成的字元串,character_expression是sysname值
--character_expression1:引號字元,如果未指定則使用方括弧作為分隔符([ ])
--quotename()的主要作用就是在存儲過程中,給列名、表名等加個[]、’’等以保證sql語句能正常執行
select quotename('stuname','''') --返回'stuname'
select quotename('student')--返回[student]

19.Replicate():按指定次數重覆字元表達式

--replicate(character_expression ,integer_expression)
--character_expression:需要複製的表達式
--integer_expression:複製次數
select replicate('abcd',3) --返回abcdabcdabcd

20.Reverse():返回字元表達式的逆向表達式

--reverse(character_expression)
--返回字元表達式的逆向表達式
select reverse('abcd') --返回dcba

21.Space():返回由重覆空格組成的字元串

--space(integer_expression)
--返回由重覆空格組成的字元串
--返回類型:char
select space(2)--返回2個空格

22.Str():將數值表達式轉換字元表達式

--str(float_expression[,length[,demical_expression]])
--length:是總長度,包括小數點、符號、數字或空格。預設值為 10
--demical_expression:小數點右邊的位數
--返回從數值表達式轉換而來的字元表達式
--返回類型:char
select str(23.35,8,3) --返回   23.350
select len(str(23.35,8,3)) --返回8

23.UniCode():表達式第一個字元Unicode的整數值

--unicode(character_expression)
--character_expression:需要轉換的表達式
--返回表達式第一個字元Unicode的整數值
select unicode('abcd') --返回97

 24.String_Split():分隔字元串,返回表,列名為value

--string_split(character_expresstion1,character_expresstion2)
--character_expresstion1:需要分隔的字元串
--character_expresstion2:分隔符
--返回子字元串的單列的表(table) 該列名為“value” 
select value from string_split('jsp-asp','-') 

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

-Advertisement-
Play Games
更多相關文章
  • 伺服器硬體知識 電腦:輔助人腦的工具 現在的人們幾乎無時無刻都會碰電腦!不管是桌上型電腦(台式機)、筆記型電腦(筆記本電腦)、平板電腦、智能手機等等,這些東西都算是電腦。雖然接觸的這麼多,但是,你瞭解電腦裡面的元件有什麼嗎?以桌機來說,電腦的機殼裡面含有什麼元件?不同的電腦可以應用在哪些工作?你生活 ...
  • 概念 LNMP是Linux Nginx MySQL PHP 的簡寫,把Nginx、MySQL以及PHP安裝在Linux系統上,組成一個環境來運行PHP的腳本語言。 Nginx是類似Apache的一種Web服務軟體 MySQL是比較小型的資料庫軟體 Apache和PHP需要在同一臺機器上 (先安裝c編 ...
  • kali安裝mongodb 1. 從官網下載需要的安裝包 官網下載地址:https://www.mongodb.com/download-center/community 下載完後可以直接用xshell登錄kali,用rz命令傳輸到伺服器上或者直接下載到kali裡面。 2. 解壓安裝 tar zxf ...
  • `netstat`命令可以用來查詢整個系統的網路狀態。百度百科的定義如下: Netstat的 "定義" 是: Netstat是在 "內核" 中訪問網路連接狀態及其相關信息的 "程式" ,它能提供TCP連接,TCP和UDP監聽,進程 "記憶體管理" 的相關報告。 Netstat是 "控制台" 命令,是一 ...
  • 前幾天筆記本出現一個莫名其妙的問題,不勝其擾,具體表現如下: A、打開資源管理器(我的電腦)時,會出現“正在處理它”的Loading提示,且地址欄會出現綠色進度條,進度條一般會持續幾分鐘(不影響進入分區)。 B、資源管理器首頁的盤符圖標、快捷文件夾圖標經常要等10多秒才載入出來。 C、進入C/D/E ...
  • 本文簡述了基於CentOS 7.6安裝zabbix 4.0.4 的過程,yum為基於DVD1配置的本地yum源。 ...
  • A database management system (DBMS) is system software for creating and managing databases. The DBMS provides users and programmers with a systematic ... ...
  • select count(*),t.分組欄位 from (select t.* ,to_char(t.時間,'HH24') stime,to_char(t.時間,'HH24mi') fz,to_char(時間,'d') from A twhere 時間>=to_date('2019-12-01',' ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...