SQL SERVER2012中新增函數(shù)之字符串函數(shù)CONCAT詳解
介紹
SQLSERVER 2012新增了兩個字符串函數(shù)CONCAT和FORMAT。本文首先介紹一下CONCAT,CONCAT函數(shù)的作用是可以返回多個字符串拼接后的結果。
CONCAT 函數(shù)最多可以連接255個字符變量,當調用這個函數(shù)的時候需要至少接收兩個參數(shù),參數(shù)類型不一定是字符串類型,也可以是可以隱式轉換為字符串的類型比如int ,float等類型。只要符合sql 2012的能隱式轉換為字符串的規(guī)則即可,當我們想把兩個值類型的數(shù)據(jù)連接起來的時候,不需要先將它們轉為nvarchar然后再通過“+”來連接了
簡單示例:
select CONCAT('a','b') as R1
/*
R1
----
ab
*/
select 'a'+'b' as R2
/*
R2
----
ab
*/
如此看來這個函數(shù)似乎使SQL語句變得更長了,這個函數(shù)到底有什么優(yōu)點呢?
下面我舉個實例說明一下(數(shù)據(jù)就從百度隨便搜了個排行榜)
if object_id('tb') is not null drop table tb
create table tb([Rank] int,[Name] varchar(10),[SearchTime] int,[Remarks] varchar(10))
insert tb
select 1,'完美世界',118251,'我沒看過' unionall
select 2,'莽荒紀',104532,'我沒看過' unionall
select 3,'大主宰',93453,'我沒看過' unionall
select 4,'絕世唐門',63333,'我沒看過' unionall
select 5,'最強棄少',38198,'我沒看過' unionall
select 6,'傲世九重天',31137,'我沒看過' unionall
select 7,'唐磚',29166,'我沒看過' unionall
select 8,'武極天下',26435,'我也沒看過' unionall
select 9,'魔天記',25227,'我都沒看過' unionall
select 10,'劍道獨尊',25097,null
針對以上數(shù)據(jù),例如我們要得到如下結果:
第1名:完美世界 搜索指數(shù):118251 備注:我沒看過
也許我們會這樣寫:
select '第'+ltrim([Rank])+'名:'+[Name]+' 搜索指數(shù):'+ltrim([SearchTime])+' 備注:'+isnull([Remarks],'') as R3 from tb
/* R3 -------------------------------------------------------------------- 第1名:完美世界搜索指數(shù):118251 備注:我沒看過 第2名:莽荒紀搜索指數(shù):104532 備注:我沒看過 第3名:大主宰搜索指數(shù):93453 備注:我沒看過 第4名:絕世唐門搜索指數(shù):63333 備注:我沒看過 第5名:最強棄少搜索指數(shù):38198 備注:我沒看過 第6名:傲世九重天搜索指數(shù):31137 備注:我沒看過 第7名:唐磚搜索指數(shù):29166 備注:我沒看過 第8名:武極天下搜索指數(shù):26435 備注:我也沒看過 第9名:魔天記搜索指數(shù):25227 備注:我都沒看過 第10名:劍道獨尊搜索指數(shù):25097 備注: */
有了CONCAT以后,我們可以這樣:
select concat('第',[Rank],'名:',[Name],' 搜索指數(shù):',[SearchTime],' 備注:',[Remarks]) as R4 from tb
/*
R4
---------------------------------------------------------------------
第1名:完美世界 搜索指數(shù):118251 備注:我沒看過
第2名:莽荒紀 搜索指數(shù):104532 備注:我沒看過
第3名:大主宰 搜索指數(shù):93453 備注:我沒看過
第4名:絕世唐門 搜索指數(shù):63333 備注:我沒看過
第5名:最強棄少 搜索指數(shù):38198 備注:我沒看過
第6名:傲世九重天 搜索指數(shù):31137 備注:我沒看過
第7名:唐磚 搜索指數(shù):29166 備注:我沒看過
第8名:武極天下 搜索指數(shù):26435 備注:我也沒看過
第9名:魔天記 搜索指數(shù):25227 備注:我都沒看過
第10名:劍道獨尊 搜索指數(shù):25097 備注:
*/
從上面的實例中我們可以看到CONCAT的兩個優(yōu)點:
1.當數(shù)據(jù)類型不一致的時候可以自動轉換;
2.對于null的處理,不用isnull也可以避免因拼接而導致結果為null的情況。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- SQL Server中常用截取字符串函數(shù)介紹
- SQL SERVER 2012新增函數(shù)之字符串函數(shù)FORMAT詳解
- SQL server中字符串逗號分隔函數(shù)分享
- SQL Server實現(xiàn)split函數(shù)分割字符串功能及用法示例
- SQL Server字符串切割函數(shù)
- SQLServer中的切割字符串SplitString函數(shù)
- sqlserver replace函數(shù) 批量替換數(shù)據(jù)庫中指定字段內指定字符串參考方法
- Sql Server 字符串聚合函數(shù)
- SQL?Server中字符串函數(shù)的用法詳解
相關文章
sql自動化檢查和分析工具 之soar和soar-web 安裝和使用體驗
這篇文章主要介紹了sql自動化檢查和分析工具 之soar和soar-web 安裝和使用體驗,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
一文詳解SQL Server如何跟蹤自動統(tǒng)計信息更新
SQL Server數(shù)據(jù)庫中,我們都清楚統(tǒng)計信息對于優(yōu)化器來說非常重要,所以本文就來和大家簡單聊一聊SQL Server如何跟蹤自動統(tǒng)計信息更新吧2025-03-03
SQLserver 數(shù)據(jù)庫危險存儲過程刪除與恢復方法
SQLserver 數(shù)據(jù)庫危險存儲過程刪除與恢復方法,有時候是為了安全,也為了以后使用方便2011-09-09
SQLServer XML數(shù)據(jù)的五種基本操作
SQLServer XML數(shù)據(jù)的五種基本操作語句2009-07-07
SqlServer鎖表如何解鎖(模擬會話事務方式鎖定一個表然后進行解鎖)
SQL提供了強大而完備的鎖機制來幫助實現(xiàn)數(shù)據(jù)庫系統(tǒng)的并發(fā)性和高性能,本文主要介紹了SqlServer鎖表如何解鎖,具有一定的參考價值,感興趣的可以了解一下2024-04-04

