MySQL、SQL Server中字符串拼接
一.MySQL中字符串拼接
1.使用加号”+”实现
在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,
在MySQL中也可以使用加号”+”来连接两个字符串。
例如:
SELECT '123'+'123' AS result1;
SELECT '123'+'abc' as result2;
SELECT 'abc'+'abc' as result3;
执行结果:
246
123
0
也就是说:MySQL会尝试将加号两端的字段值转换为数字类型,如果转换失败则为0,这样看来,加号”+”实际上不是进行字符串拼接,而是数字相加。
那么,如何才能进行字符串拼接呢?强大的MySQL提供了两个函数,CONCAT和CONCAT_WS。
2.CONCAT函数
CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型,也可以是非字符串类型(对于非字符串类型,MySQL将尝试
将其转化为字符串类型),CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串作为返回值。
例如:
SELECT CONCAT(123,123) AS result1;
SELECT CONCAT(123,'abc') AS result2;
SELECT CONCAT('abc','abc') AS result3;
执行结果:
123123
123abc
abcabc
3.CONCAT_WS函数
CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分隔符,而剩下的参数则为待拼接的字符串值。
例如:
SELECT CONCAT_WS(':','abc','def') AS result1;
SELECT CONCAT_WS(',','abc','def') AS result2;
SELECT CONCAT_WS(' ','abc','def') AS result3;
执行结果:
abc:def
abc,def
abc def
4.GROUP_CONCAT函数
MySQL中除了普通的字符串拼接函数外,还提供了分组拼接函数。
例如,有表t_fruit(shop_id, fruit_name),表中数据如下:
shop_id fruit_name
1 桃子
1 梨子
2 香蕉
3 苹果
2 草莓
现在需要统计每个店铺经营的水果,就可以使用GROUP_CONCAT函数,如下:
select shop_id,GROUP_CONCAT(fruit_name) from t_fruit group by shop_id;
执行结果如下:
1 ‘桃子,梨子’
2 ‘香蕉,草莓’
1 ‘苹果’
二.SQL Server中字符串拼接
SQL Server没有提供字符串拼接函数,而是使用加号”+”来进行字符串拼接,但是需要注意的是,字符串与数字拼接时,一定要将数字类型通过CONVERT函数转化为字符串类型。
1、字符串与字符串的拼接
select 'abc'+'def';
2、字符串与数字拼接
select 'id_'+convert(varchar(50),id) from tb_user
必须显示的将数字转化为字符串,否则SQL server会将前面的字符串隐式转化为整型,出现类型转换错误。
MySQL、SQL Server中字符串拼接相关推荐
- SQL Server中字符串处理函数
SQL Server中截取字符串常用函数 截取字符串中的最后一个斜杠后的所有字符: SELECT A.PIC_URL, RIGHT(A.PIC_URL,(CHARINDEX('/',REVERSE(A ...
- Mysql与Oracle中字符串拼接
1.Mysql // mysql可以直接拼接 select * from AAA where name like "%333%"; // mysql中有专门的拼接函数concat, ...
- mysql sql数值转字符拼接_sql中的字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- java sql拼接字符串_SQL中字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数
MySQL字符串连接函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符 ...
- mysql 有newid()_MySQL中,有无GUID函数?就像SQL Server中的newid()解决方法
mysql中,有无GUID函数?就像SQL Server中的newid() 如题! 有无直接返回GUID唯一标识的函数? ------解决方案-------------------- 函数 UUID( ...
- mysql物理读和逻辑读,SQL Server中STATISTICS IO物理读和逻辑读的误区
SQL Server中STATISTICS IO物理读和逻辑读的误区 人人知道,SQL Server中可以行使下面下令查看某个语句读写IO的情形 SET STATISTICS IO ON 那么这个下令 ...
- SQL Server中截取字符串常用函数
SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要 ...
- sql oracle 自增长字段,在Oracle、MySQL、MS SQL Server中创设自动增长字段
在Oracle.MySQL.MS SQL Server中创建自动增长字段 好吧,今天面试有道题,要各个数据库怎么建立自增长字段,顺便复习一下吧,最近面试很多数据库问题... 一:Oracle Orac ...
最新文章
- python线程池模块_python并发编程之进程池,线程池,协程
- PHP 开发中的外围资源性能分析(一)
- 计算机网络职称考试,职称计算机考试Internet基础知识:计算机网络组成
- GitHub上那些值得一试的JAVA开源库--转
- python题库刷题训练软件_刷题 -- python计算器练习题
- etcd mysql集群_Etcd单节点扩容为三节点集群
- HTTP1.1新增了五种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 、 CONNECT
- 数据源管理 | OLAP查询引擎,ClickHouse集群化管理
- Java面试11|Maven与Git
- shiro身份验证失败捕获的异常对应信息
- 智能语音识别转文字字幕实时上屏直播系统
- 7-20 约分最简分式c语言,7-24 约分最简分式
- 智能手机企业现状 行业发展趋势
- 寻找丢失的LZY(dfs)
- 【VSCode教程】 C++第一个DLL、远离手动GCC、快速自动生成、来 say_helloヽ(^o^)丿
- android 65536
- 你需要的iPhoneX适配
- TypeError Cannot instantiate abstract class xxx with abstract method
- IIS或Apache部署Django项目时,Admin后台管理CSS样式丢失?
- 99.扩展183.信息系统运维维护服务