SQL SERVER2012中新增函數(shù)之字符串函數(shù)CONCAT詳解
介紹
SQLSERVER 2012新增了兩個(gè)字符串函數(shù)CONCAT和FORMAT。本文首先介紹一下CONCAT,CONCAT函數(shù)的作用是可以返回多個(gè)字符串拼接后的結(jié)果。
CONCAT 函數(shù)最多可以連接255個(gè)字符變量,當(dāng)調(diào)用這個(gè)函數(shù)的時(shí)候需要至少接收兩個(gè)參數(shù),參數(shù)類型不一定是字符串類型,也可以是可以隱式轉(zhuǎn)換為字符串的類型比如int ,float等類型。只要符合sql 2012的能隱式轉(zhuǎn)換為字符串的規(guī)則即可,當(dāng)我們想把兩個(gè)值類型的數(shù)據(jù)連接起來的時(shí)候,不需要先將它們轉(zhuǎn)為nvarchar然后再通過“+”來連接了
簡單示例:
select CONCAT('a','b') as R1 /* R1 ---- ab */ select 'a'+'b' as R2 /* R2 ---- ab */
如此看來這個(gè)函數(shù)似乎使SQL語句變得更長了,這個(gè)函數(shù)到底有什么優(yōu)點(diǎn)呢?
下面我舉個(gè)實(shí)例說明一下(數(shù)據(jù)就從百度隨便搜了個(gè)排行榜)
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,'莽荒紀(jì)',104532,'我沒看過' unionall select 3,'大主宰',93453,'我沒看過' unionall select 4,'絕世唐門',63333,'我沒看過' unionall select 5,'最強(qiáng)棄少',38198,'我沒看過' unionall select 6,'傲世九重天',31137,'我沒看過' unionall select 7,'唐磚',29166,'我沒看過' unionall select 8,'武極天下',26435,'我也沒看過' unionall select 9,'魔天記',25227,'我都沒看過' unionall select 10,'劍道獨(dú)尊',25097,null
針對(duì)以上數(shù)據(jù),例如我們要得到如下結(jié)果:
第1名:完美世界 搜索指數(shù):118251 備注:我沒看過
也許我們會(huì)這樣寫:
select '第'+ltrim([Rank])+'名:'+[Name]+' 搜索指數(shù):'+ltrim([SearchTime])+' 備注:'+isnull([Remarks],'') as R3 from tb
/* R3 -------------------------------------------------------------------- 第1名:完美世界搜索指數(shù):118251 備注:我沒看過 第2名:莽荒紀(jì)搜索指數(shù):104532 備注:我沒看過 第3名:大主宰搜索指數(shù):93453 備注:我沒看過 第4名:絕世唐門搜索指數(shù):63333 備注:我沒看過 第5名:最強(qiáng)棄少搜索指數(shù):38198 備注:我沒看過 第6名:傲世九重天搜索指數(shù):31137 備注:我沒看過 第7名:唐磚搜索指數(shù):29166 備注:我沒看過 第8名:武極天下搜索指數(shù):26435 備注:我也沒看過 第9名:魔天記搜索指數(shù):25227 備注:我都沒看過 第10名:劍道獨(dú)尊搜索指數(shù):25097 備注: */
有了CONCAT以后,我們可以這樣:
select concat('第',[Rank],'名:',[Name],' 搜索指數(shù):',[SearchTime],' 備注:',[Remarks]) as R4 from tb /* R4 --------------------------------------------------------------------- 第1名:完美世界 搜索指數(shù):118251 備注:我沒看過 第2名:莽荒紀(jì) 搜索指數(shù):104532 備注:我沒看過 第3名:大主宰 搜索指數(shù):93453 備注:我沒看過 第4名:絕世唐門 搜索指數(shù):63333 備注:我沒看過 第5名:最強(qiáng)棄少 搜索指數(shù):38198 備注:我沒看過 第6名:傲世九重天 搜索指數(shù):31137 備注:我沒看過 第7名:唐磚 搜索指數(shù):29166 備注:我沒看過 第8名:武極天下 搜索指數(shù):26435 備注:我也沒看過 第9名:魔天記 搜索指數(shù):25227 備注:我都沒看過 第10名:劍道獨(dú)尊 搜索指數(shù):25097 備注: */
從上面的實(shí)例中我們可以看到CONCAT的兩個(gè)優(yōu)點(diǎn):
1.當(dāng)數(shù)據(jù)類型不一致的時(shí)候可以自動(dòng)轉(zhuǎn)換;
2.對(duì)于null的處理,不用isnull也可以避免因拼接而導(dǎo)致結(jié)果為null的情況。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- SQL Server中常用截取字符串函數(shù)介紹
- SQL SERVER 2012新增函數(shù)之字符串函數(shù)FORMAT詳解
- SQL server中字符串逗號(hào)分隔函數(shù)分享
- SQL Server實(shí)現(xiàn)split函數(shù)分割字符串功能及用法示例
- SQL Server字符串切割函數(shù)
- SQLServer中的切割字符串SplitString函數(shù)
- sqlserver replace函數(shù) 批量替換數(shù)據(jù)庫中指定字段內(nèi)指定字符串參考方法
- Sql Server 字符串聚合函數(shù)
- SQL?Server中字符串函數(shù)的用法詳解
相關(guān)文章
SQL Server復(fù)制功能要避開缺陷的干擾小結(jié)
SQL Server具有強(qiáng)大的復(fù)制功能,除了將數(shù)據(jù)和數(shù)據(jù)庫對(duì)象從一個(gè)數(shù)據(jù)庫復(fù)制并準(zhǔn)確分發(fā)的另一個(gè)數(shù)據(jù)庫中,還要實(shí)行數(shù)據(jù)庫之間的同步。2011-03-03SQL Server存儲(chǔ)過程(數(shù)據(jù)庫引擎)使用詳解
存儲(chǔ)過程(Stored Procedure)是預(yù)編譯SQL語句集合,這些語句存儲(chǔ)在一個(gè)名稱(存儲(chǔ)過程的名稱)下并作為單元來處理,存儲(chǔ)過程代替了傳統(tǒng)的逐條執(zhí)行SQL語句的方式,本文小編給大家介紹了SQL Server存儲(chǔ)過程(數(shù)據(jù)庫引擎)使用,需要的朋友可以參考下2023-11-11SQL SERVER函數(shù)之深入表值函數(shù)的處理分析
本篇文章是對(duì)表值函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Windows下SQL Serever 2012徹底卸載刪除教程
這篇文章主要為大家詳細(xì)介紹了Windows下SQL Serever2012徹底卸載刪除的教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03asp.net連接查詢SQL數(shù)據(jù)庫并把結(jié)果顯示在網(wǎng)頁上(2種方法)
使用C#連接SQL數(shù)據(jù)庫,并使用SQL語句查詢,摸索了兩天終于運(yùn)行起來了,接下來為大家分享下兩種連接方法,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04