sqlserver字符串拼接
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字符串拼接相关推荐
- sqlserver 字符串拼接_VB6 连接SQL Server数据库实例
SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点.那么VB6怎么去连接呢?接下来请跟进我们的步伐前进! 直接上CLS_VB6 ...
- sqlServer——CONCAT()字符串拼接函数使用
需求: 将下表中的yxdm字段里非空的数据前加上90 具体sqlserver语句写法 update tableNameset set yxdm = CONCAT('90',yxdm) where yx ...
- 各版SQL字符串拼接
在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456'; orac ...
- 含有参数的sql拼接_深入讲解SQL中的字符串拼接
一.概述 相信大家在日常开发中,在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select ' ...
- java sql拼接字符串_SQL中字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- mysql sql数值转字符拼接_sql中的字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- Java案例——字符串拼接
Java案例--字符串拼接案例 1.案例需求 定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果 例如,数字为int[] arr = {1,2,3}; ...
- JSON字符串 拼接与解析
常用方式: json字符串拼接(目前使用过两种方式): 1.运用StringBuilder拼接 StringBuilder json = new StringBuilder(); json.appen ...
- 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 字符串,是Java中最常用的一个数据类型了.关于字符串的知识,作者 ...
- 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 本文,也是对于Java中字符串相关知识的一个补充,主要来介绍一下字 ...
最新文章
- ubuntu|利用system来新建文件夹
- 【转】海量数据相似度计算之simhash和海明距离
- 表格布局(tablelayout)
- Android构建流程——篇六
- CMOS图像传感器——SmartSens
- 30 个很棒的 PHP 开源 CMS 内容管理系统
- 查看宝塔面板账号密码命令_宝塔面板升级到最新版图文教程
- 计算机类系统能力培养试点学校,南昌航空大学获批教育部计算机类专业系统能力培养试点高校...
- HTML转图片利器:wkhtmltox
- 34.Linux/Unix 系统编程手册(下) -- 进程组,会话和作业控制
- [ora-02289] sequence does not exist
- 系统盘格式化数据恢复
- java batik_[导入]Apache Batik,又爱又恨
- 兄弟7895dw粉盒清零_兄弟打印机2260D粉盒怎么清零?
- 基于matlab双曲正割脉冲,光纤内脉冲信号传输仿真(包含matlab程序)
- CUT&RUN——检测蛋白-DNA相互作用的强大通用技术
- 100本最棒的web前端图书推荐
- 每天半小时,一周带你手速大幅提升——几大打字练习网站测评
- 一个 Git 库内管理多个子项目
- windows远程连接服务器并映射端口访问目标服务
热门文章
- linux 串口驱动解析之2440
- matlab中英文文献,matlab外文文献
- VC法则:互联网行业仅前三名可成功
- 多元统计分析——复习与总结
- 微型计算机系统的几个指标课件,[计算机基础课件67.ppt
- 正方教务管理系统服务器崩溃,正方教务管理系统应用中存在的问题及应对策略...
- 使用mmdetection检测并存储结果
- 计算机怎么开启tftp服务器,win7电脑如何开启tftp服务器 电脑开启tftp服务器操作方法...
- 忆旧:关于“天网防火墙”的破解
- 经营生鲜便利店的超级产品战略,盘点那些靠卖菜抢占社区的便利店