• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > 深入讲解SQL中的字符串拼接

深入讲解SQL中的字符串拼接

作者:rain man 字体:[增加 减小] 来源:互联网 时间:2017-05-11

rain man通过本文主要向大家介绍了sql替换部分字符串,sql中截取字符串,sql 截取字符串,sql 替换字符串,sql 字符串转日期等相关知识,希望本文的分享对您有所帮助

一、概述

相信大家在日常开发中,在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。

sqlserver:

select '123'+'456';
</div>

oracle:

select '123'||'456' from dual;
</div>

或

select concat('123','456') from dual;
</div>

mysql:

select concat('123','456');
</div>

注意:SQL Server中没有concat函数(SQL Server 2012已新增concat函数)。oracle和mysql中虽然都有concat,但是oracle中只能拼接2个字符串,所以建议用||的方式;mysql中的concat则可以拼接多个字符串。

在SQL Server中的“+”号除了能够进行字符串拼接外,还可以进行数字运算,在进行字符串拼接时要小心使用。下面以“Users”表为例,进行详细分析:

二、数字 + 字符串

2.1 int + varchar

SELECT id + place FROM Users WHERE id = 1; //提示错误“在将 varchar 值 'bzz' 转换成数据类型 int 时失败”
SELECT id + place FROM Users WHERE id = 5; //提示错误“在将 varchar 值 '102.34' 转换成数据类型 int 时失败”
</div>
SELECT id + place FROM Users WHERE id = 4; //返回int “105”
</div>

2.2 decimal + varchar

SELECT *, id + cost FROM Users WHERE id = 4 OR id = 5; //返回decimal “102.98”和“104.30”
</div>
SELECT *, place + cost FROM Users WHERE id = 1; //提示错误“从数据类型 varchar 转换为 numeric 时出错。”
</div>

由此可见,系统会将字符串varchar类型转化为int,若不能转换则提示错误,转换成功则进行数字计算。

三、数字 + 数字

数字指的是int、decimal等类型。数字 +  数字,则进行数字相加,若某字段为NULL,则计算结果为NULL。

SELECT *, uage + cost AS 'uage + cost' FROM Users
</div>


四、字符串 + 字符串

字符串 + 字符串,则直接进行拼接。若某字段为NULL,则计算结果为NULL。

SELECT *, uname + place AS 'uname + place' FROM Users 
</div>

五、使用CAST和CONVERT函数进行类型转换

通过上述实例,可以看出若要使用“+”进行字符串拼接或数字计算,最稳妥的方法是进行类型转换。

  • CAST()函数可以将某种数据类型的表达式转化为另一种数据类型
  • CONVERT()函数也可以将制定的数据类型转换为另一种数据类型

要求:将“678”转化为数值型数据,并与123相加进行数学运算。

SELECT CAST('678' AS INT) + 123;
SELECT CONVERT(INT, '678') + 123;
</div>

要求:id列和place列进行字符串拼接。

SELECT *, CONVERT(varchar(10), id) + place FROM Users;
</div>

字符串拼接后的字符串不能简单作为“筛选字段”

有时,需要列A = 变量1,列B = 变量2的筛选,为了简化SQL语句 列A + 列B = 变量1 + 变量2。这种方法并不完全准确

SELECT * FROM Users WHERE uname + place = 'aabzz';
</div>


SELECT * FROM Users WHERE uname = 'aa' AND place = 'bzz';
</div>

为了防止上述情况的发生,可以再列A和列B之间加上一个较特殊的字符串。

SELECT * FROM Users WHERE uname + 'rain@&%$man' + place = 'aa' + 'rain@&%$man' + 'bzz'
</div>

总结

以上就是关于SQL中字符串拼接的全部内容了,希望本文的内容对大家的学习或者使用SQL能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 深入讲解SQL中的字符串拼接

相关文章

  • 2017-05-11hadoop map-reduce中的文件并发操作
  • 2017-05-11复制数据库表中两个字段数据的SQL语句
  • 2017-09-29数据库缓存及优化
  • 2017-05-11SQLite快速入门指南
  • 2017-05-11收缩数据库不变小的解决方法
  • 2017-05-11一个提升PostgreSQL性能的小技巧
  • 2017-05-11ACCESS转化成SQL2000需要注意的几个问题小结
  • 2017-05-11深入讲解SQL中的字符串拼接
  • 2017-05-11SQL注入详解(扫盲篇)
  • 2017-05-11关于SQL注入绕过的一些知识点

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Hadoop2.X/YARN环境搭建--CentOS7.0系统配置
    • SQLServer与Oracle常用函数实例对比汇总
    • 数据库正规化和设计技巧
    • 详解 MapperScannerConfigurer之sqlSessionFactory注入方式
    • SQL Update多表联合更新的方法
    • 数据库中的乐观锁与悲观锁
    • SQL中Having与Where的区别
    • Hadoop 2.x伪分布式环境搭建详细步骤
    • 8 种常用的 NoSQL 数据库系统对比分析
    • 虚拟主机ACCESS转换成MSSQL完全攻略(图文教程)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有