SQL SERVER2012中新增函数之字符串函数CONCAT详解
作者:叶子 发布时间:2024-01-23 18:15:23
标签:sqlserver,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的情况。
来源:http://blog.csdn.net/maco_wang/article/details/22982525


猜你喜欢
- 微软在今天早上发布新的安全通告证实,一处远程执行代码漏洞影响到了整个SQL Server产品线。该漏洞的入侵代码在两周前已经被公布在互联网上
- 这个是JS控制图片滚动的效果,当鼠标结果新闻标题时开始滚动到对应的图片,可以作为图片新闻。效果图:<!DOCTYPE HTML PUB
- 在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚
- code原文档 1.txt :HelloNanjing100实现代码:file_ = "1.txt"r_file = o
- 本文实例为大家分享了python实现批量格式转换的具体代码,供大家参考,具体内容如下深度学习过程中总是绕不开数据集的制作,有时候实际图片格式
- 本文实例讲述了PHP获取二叉树镜像的方法。分享给大家供大家参考,具体如下:问题操作给定的二叉树,将其变换为源二叉树的镜像。解决思路翻转二叉树
- django ajax发送post请求的两种方法,具体内容如下所述:第一种:将csrf_token放在from表单里 <script&
- 使用Matplotlib绘制的图表的默认坐标轴是在左下角的,这样对于一些函数的显示不是非常方便,要改变坐标轴的默认显示方式主要要使用gca(
- mysql中用命令行复制表结构的方法主要有一下几种: 1.只复制表结构到新表CREATE TABLE 新表 SELECT * FR
- python对csv文件追加写入列,具体内容如下所示:原始数据[外链图片转存失败(img-zQSQWAyQ-1563597916666)(C
- 前言JSON类型是MySQL5.7.8中新加入的一种数据类型,并在后续版本尤其是MySQL8.0中得到了大幅增强,现在的JSON类型的功能十
- 欢欢喜喜辞旧岁 🐰🐰🐰辞旧迎新之际,来 AI Studio 一起 #欢喜迎兔年# !分享不同新年风俗,共享一段快乐时光!🐰🐰🐰p>下面
- 在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效。seaborn官方文档见链接:http://seaborn.py
- 一步步教你怎么用Python画雪人,进一步熟悉Python的基础画图操作,废话不多说,上代码。希望您给个关注给个赞,也算对我们的支持了。cl
- 今天,我们使用面部标记和 OpenCV 检测视频流中的眨眼次数。为了构建我们的眨眼检测器,我们将计算一个称为眼睛纵横比 (EAR) 的指标,
- 简述在大多数此类教程中都会不遗余力的介绍如何使用数据库。今天我们对数据库暂且不表,而是来关注另一个在web应用中很重要的特性:如
- 本文实例总结了go语言中使用timer的常用方式。分享给大家供大家参考。具体分析如下:下面三段代码(A,b,C)的功能都是在5分钟后执行指定
- 和C语言一样,引号属于特殊功能字符,不能够像普通字符那样直接通过print打印,需要进行一些处理,比如说反斜杠转义等。这里介绍几种打印三引号
- LDA(Latent Dirichlet allocation)模型是一种常用而用途广泛地概率主题模型。其实现一般通过Variational
- 音乐播放器可让您快速轻松地管理和收听所有音乐文件。在本文中,我将带您了解如何使用 Python 创建音乐播放器 GUI。如何使用 Pytho