SQLSERVER2012中新增函数之字符串函数CONCAT详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQLSERVER2012中新增函数之字符串函数CONCAT详解介绍
SQLSERVER 2012新增了两个字符串函数CONCAT和FORMAT。

本⽂⾸先介绍⼀下CONCAT,CONCAT函数的作⽤是可以返回多个字符串拼接后的结果。

CONCAT 函数最多可以连接255个字符变量,当调⽤这个函数的时候需要⾄少接收两个参数,参数类型不⼀定是字符串类型,也可以是可以隐式转换为字符串的类型⽐如int ,float等类型。

只要符合sql 2012的能隐式转换为字符串的规则即可,当我们想把两个值类型的数据连接起来的时候,不需要先将它们转为nvarchar然后再通过“+”来连接了
简单⽰例:
select CONCAT('a','b') as R1
/*
R1
----
ab
*/
select 'a'+'b' as R2
/*
R2
----
ab
*/
如此看来这个函数似乎使SQL语句变得更长了,这个函数到底有什么优点呢?
下⾯我举个实例说明⼀下(数据就从百度随便搜了个排⾏榜)
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
针对以上数据,例如我们要得到如下结果:
第1名:完美世界搜索指数:118251 备注:我没看过
也许我们会这样写:
select '第'+ltrim([Rank])+'名:'+[Name]+' 搜索指数:'+ltrim([SearchTime])+' 备注:'+isnull([Remarks],'') as R3 from tb
/*
R3
--------------------------------------------------------------------
第1名:完美世界搜索指数:118251 备注:我没看过
第2名:莽荒纪搜索指数:104532 备注:我没看过
第3名:⼤主宰搜索指数:93453 备注:我没看过
第4名:绝世唐门搜索指数:63333 备注:我没看过
第5名:最强弃少搜索指数:38198 备注:我没看过
第6名:傲世九重天搜索指数:31137 备注:我没看过
第7名:唐砖搜索指数:29166 备注:我没看过
第8名:武极天下搜索指数:26435 备注:我也没看过
第9名:魔天记搜索指数:25227 备注:我都没看过
第10名:剑道独尊搜索指数:25097 备注:
*/
有了CONCAT以后,我们可以这样:
select concat('第',[Rank],'名:',[Name],' 搜索指数:',[SearchTime],' 备注:',[Remarks]) as R4 from tb
/*
R4
---------------------------------------------------------------------
第1名:完美世界搜索指数:118251 备注:我没看过
第2名:莽荒纪搜索指数:104532 备注:我没看过
第3名:⼤主宰搜索指数:93453 备注:我没看过
第4名:绝世唐门搜索指数:63333 备注:我没看过
第5名:最强弃少搜索指数:38198 备注:我没看过
第6名:傲世九重天搜索指数:31137 备注:我没看过
第7名:唐砖搜索指数:29166 备注:我没看过
第8名:武极天下搜索指数:26435 备注:我也没看过
第9名:魔天记搜索指数:25227 备注:我都没看过
第10名:剑道独尊搜索指数:25097 备注:
*/
从上⾯的实例中我们可以看到CONCAT的两个优点:
1.当数据类型不⼀致的时候可以⾃动转换;
2.对于null的处理,不⽤isnull也可以避免因拼接⽽导致结果为null的情况。

总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

相关文档
最新文档