介绍
SQLSERVER 2012新增了两个字符串函数CONCAT和FORMAT。本文首先介绍一下CONCAT,CONCAT函数的作用是可以返回多个字符串拼接后的结果。
CONCAT 函数最多可以连接255个字符变量,当调用这个函数的时候需要至少接收两个参数,参数类型不一定是字符串类型,也可以是可以隐式转换为字符串的类型比如int ,float等类型。只要符合sql 2012的能隐式转换为字符串的规则即可 python ,当我们想把两个值类型的数据连接起来的时候,不需要先将它们转为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,'我没看过' u javascript nionall select 3,'大主宰',93453,'我没看过' unionall select 4,'绝世唐门',63333,'我没看过' unionall select 5,'最强弃少',38198,'我没看过' unionall select 6,'傲世九重天',31137,'我没看过 php ' 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 php concat('第',[Rank],'名:',[Name],' 搜索指数:',[SearchTime],' 备注:',[Remarks]) as R4 from tb /* R4 --------------------------------------------------------------------- 第1名:完美世界 搜索指数:118251 备注:我没看过 第2名:莽荒纪 搜索指数:104532 备注:我没看过 第3名:大主宰 搜索指数:93453 备注:我没看过 第4名:绝世唐门 搜索指数:63333 备注:我没看过 第5名:最强弃少 搜索指数:38198 备注:我没看过 第6名:傲世九重天 js 搜索指数:31137 备注:我没看过 第7名:唐砖 搜索指数:29166 备注:我没看过 第8名:武极天下 搜索指数:26435 备注:我也没看过 第9名:魔天记 搜索指数:25227 备注:我都没看过 第10名:剑道独尊 搜索指数:25097 备注: */
从上面的实例中我们可以看到CONCAT的两个优点:
1.当数据类型不一致的时候可以自动转换;
2.对于null的处理,不用isnull也可以避免因拼接而导致结果为null的情况。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
查看更多关于SQL SERVER2012中新增函数之字符串函数CONCAT详解的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did177956