SQL中字符串拼接

  • 1. 概述
  • 2. 数字 + 字符串
  • 3. 数字 + 数字
  • 4.字符串 + 字符串
  • 5. 使用CAST和CONVERT函数进行类型转换

1. 概述

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

sqlserver:

select '123'+'456';

oracle:

select '123'||'456' from dual;
或
select concat('123','456') from dual;

mysql:

select concat('123','456');

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

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

2. 数字 + 字符串

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 时失败”
SELECT id + place FROM Users WHERE id = 4;   //返回int “105”

2.2 decimal + varchar

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

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

3. 数字 + 数字

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

SELECT *,  uage + cost AS 'uage + cost'  FROM Users

4.字符串 + 字符串

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

SELECT *, uname + place AS 'uname + place' FROM Users 

5. 使用CAST和CONVERT函数进行类型转换

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

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

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

SELECT CAST('678' AS INT) + 123;
SELECT CONVERT(INT, '678') + 123;

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

SELECT *, CONVERT(varchar(10), id) + place FROM Users;

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

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

SELECT * FROM Users WHERE uname + place = 'aabzz';

SELECT * FROM Users WHERE uname = 'aa' AND place = 'bzz';

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

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

sqlserver字符串拼接相关推荐

  1. sqlserver 字符串拼接_VB6 连接SQL Server数据库实例

    SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点.那么VB6怎么去连接呢?接下来请跟进我们的步伐前进! 直接上CLS_VB6 ...

  2. sqlServer——CONCAT()字符串拼接函数使用

    需求: 将下表中的yxdm字段里非空的数据前加上90 具体sqlserver语句写法 update tableNameset set yxdm = CONCAT('90',yxdm) where yx ...

  3. 各版SQL字符串拼接

    在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456'; orac ...

  4. 含有参数的sql拼接_深入讲解SQL中的字符串拼接

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

  5. java sql拼接字符串_SQL中字符串拼接

    1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...

  6. mysql sql数值转字符拼接_sql中的字符串拼接

    1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...

  7. Java案例——字符串拼接

    Java案例--字符串拼接案例 1.案例需求 定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果 例如,数字为int[] arr = {1,2,3}; ...

  8. JSON字符串 拼接与解析

    常用方式: json字符串拼接(目前使用过两种方式): 1.运用StringBuilder拼接 StringBuilder json = new StringBuilder(); json.appen ...

  9. 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 字符串,是Java中最常用的一个数据类型了.关于字符串的知识,作者 ...

  10. 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 本文,也是对于Java中字符串相关知识的一个补充,主要来介绍一下字 ...

最新文章

  1. ubuntu|利用system来新建文件夹
  2. 【转】海量数据相似度计算之simhash和海明距离
  3. 表格布局(tablelayout)
  4. Android构建流程——篇六
  5. CMOS图像传感器——SmartSens
  6. 30 个很棒的 PHP 开源 CMS 内容管理系统
  7. 查看宝塔面板账号密码命令_宝塔面板升级到最新版图文教程
  8. 计算机类系统能力培养试点学校,南昌航空大学获批教育部计算机类专业系统能力培养试点高校...
  9. HTML转图片利器:wkhtmltox
  10. 34.Linux/Unix 系统编程手册(下) -- 进程组,会话和作业控制
  11. [ora-02289] sequence does not exist
  12. 系统盘格式化数据恢复
  13. java batik_[导入]Apache Batik,又爱又恨
  14. 兄弟7895dw粉盒清零_兄弟打印机2260D粉盒怎么清零?
  15. 基于matlab双曲正割脉冲,光纤内脉冲信号传输仿真(包含matlab程序)
  16. CUT&RUN——检测蛋白-DNA相互作用的强大通用技术
  17. 100本最棒的web前端图书推荐
  18. 每天半小时,一周带你手速大幅提升——几大打字练习网站测评
  19. 一个 Git 库内管理多个子项目
  20. windows远程连接服务器并映射端口访问目标服务

热门文章

  1. linux 串口驱动解析之2440
  2. matlab中英文文献,matlab外文文献
  3. VC法则:互联网行业仅前三名可成功
  4. 多元统计分析——复习与总结
  5. 微型计算机系统的几个指标课件,[计算机基础课件67.ppt
  6. 正方教务管理系统服务器崩溃,正方教务管理系统应用中存在的问题及应对策略...
  7. 使用mmdetection检测并存储结果
  8. 计算机怎么开启tftp服务器,win7电脑如何开启tftp服务器 电脑开启tftp服务器操作方法...
  9. 忆旧:关于“天网防火墙”的破解
  10. 经营生鲜便利店的超级产品战略,盘点那些靠卖菜抢占社区的便利店