`

字符串的拼接

阅读更多
MYSQL

在Java、C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"、"a"+"b"。
在MYSQL中也可以使用加号“+”来连接两个字符串,比如下面的SQL:
SELECT '12'+'33',FAge+'1' FROM T_Employee

仔细观察第一列,惊讶吗?这个列的显示结果并不是我们希望的“1233”,而是把“12”
和“33”两个字符串当成数字来求两个数的和了;同样将一个数字与一个字符串用加号“+”
连接也是同样的效果,比如这里的第二列。
在MYSQL中,当用加号“+”连接两个字段(或者多个字段)的时候,MYSQL会尝试将
字段值转换为数字类型(如果转换失败则认为字段值为0),然后进行字段的加法运算。因此,
当计算的'12'+'33'的时候,MYSQL会将“12”和“33”两个字符串尝试转换为数字类型的
12和33,然后计算12+33的值,这就是为什么我们会得到45的结果了。同样道理,在计算
FAge+'1'的时候,由于FAge为数字类型,所以不需要进行转换,而'1'为字符串类型,所以
MYSQL将'1'尝试转换为数字1,然后计算FAge+1做为计算列的值。
MYSQL会尝试将加号两端的字段值尝试转换为数字类型,如果转换失败则认为字段值为
0,比如我们执行下面的SQL语句:
SELECT 'abc'+'123',FAge+'a' FROM T_Employee

在MYSQL中进行字符串的拼接要使用CONCAT函数,CONCAT函数支持一个或者多个参数,
参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MYSQL将尝试
将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为
返回值。比如下面的SQL语句用于将用户的多个字段信息以一个计算字段的形式查询出来:
SELECT CONCAT('工号为:',FNumber,'的员工的幸福指数:',FSalary/(FAge-21))
FROM T_Employee

CONCAT支持只有一个参数的用法,这时的CONCAT可以看作是一个将这个参数值尝试转
化为字符串类型值的函数。MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,
CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分
隔符,而剩下的参数则为待拼接的字符串值,比如执行下面的SQL:
SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee

与MYSQL不同,MSSQLServer中可以直接使用加号“+”来拼接字符串。比如执行下面的
SQL语句:
SELECT '工号为'+FNumber+'的员工姓名为'+Fname FROM T_Employee
WHERE FName IS NOT NULL

Oracle
Oracle中使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。
比如执行下面的SQL语句:
SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee
WHERE FName IS NOT NULL

除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句:
SELECT CONCAT('工号:',FNumber) FROM T_Employee

如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,比如执行下面的
SQL语句:
SELECT CONCAT('年龄:',FAge) FROM T_Employee

与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以
上字符串的拼接,比如下面的SQL语句在Oracle中是错误的:
SELECT CONCAT('工号为',FNumber,'的员工姓名为',FName) FROM T_Employee
WHERE FName IS NOT NULL
运行以后Oracle会报出下面的错误信息:
参数个数无效
如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用,上面的SQL可以如

下改写:
SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓名为'),FName) FROM
T_Employee
WHERE FName IS NOT NULL

DB2
DB2中使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。比
如执行下面的SQL语句:
SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee
WHERE FName IS NOT NULL

除了“||”,DB2还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句:
SELECT CONCAT('工号:',FNumber) FROM T_Employee

与Oracle不同,如果CONCAT中连接的值不是字符串,则DB2不会尝试进行类型转换而是

报出错误信息,比如执行下面的SQL语句是错误的:
SELECT CONCAT('年龄:',FAge) FROM T_Employee
运行以后DB2会报出下面的错误信息:
未找到类型为"FUNCTION" 命名为 "CONCAT" 且具有兼容自变量的已授权例程
与MYSQL的CONCAT()函数不同,DB2的CONCAT()函数只支持两个参数,不支持两个以上
字符串的拼接,比如下面的SQL语句在Oracle中是错误的:
SELECT CONCAT('工号为',FNumber,'的员工姓名为',FName) FROM T_Employee
WHERE FName IS NOT NULL
运行以后Oracle会报出下面的错误信息:
未找到类型为"FUNCTION" 命名为 "CONCAT" 且具有兼容自变量的已授权例程
如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用,上面的SQL可以如
下改写:
SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓名为'),FName) FROM
T_Employee
WHERE FName IS NOT NULL
分享到:
评论

相关推荐

    fortran字符串拼接

    FORTRAN 字符串拼接 在 Fortran 语言中,字符串拼接是非常重要的操作之一。它可以将整数或实数类型转换为字符串类型,以便于文件命名、数据读取和写入等操作。在本节中,我们将详细介绍 FORTRAN 字符串拼接的方法和...

    以太坊solidity字符串拼接实现

    在以太坊智能合约开发中,处理字符串拼接是一个常见的需求。不过,在Solidity编程语言中,由于其特定的类型系统和内存管理机制,没有像其他高级编程语言(如JavaScript或Python)中那样直接支持字符串拼接运算符。...

    JAVA的字符串拼接与性能

    JAVA的字符串拼接与性能 概述:本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码...

    字符串拼接工具

    "字符串拼接工具"就是针对这类需求而设计的小型实用程序。它能够帮助开发者快速、有效地组合多个字符串,添加前缀或后缀,使得多行文本的格式化变得简单。 在编程中,字符串拼接通常是通过字符串连接运算符或者使用...

    sql 多行合并某一列字符串拼接的示例

    在SQL中,将多行数据合并为一行,尤其是在某一列进行字符串拼接,是一项常见的需求。这通常用于汇总数据、创建报表或者为了分析目的而整合信息。本文将深入探讨如何利用SQL实现多行数据的合并,特别关注字符串拼接的...

    jquery拼接ajax 的json和字符串拼接的方法

    整理文档,搜刮出一个jquery拼接ajax 的json和字符串拼接的代码,稍微整理精简一下做下分享。 jQuery拼接字符串ajax <form id="myForm" action="#"> <input name="name"/> <input name="age"/>...

    Oracle10g自定义聚合函数(字符串拼接)

    * 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000'...

    RobotFramework字符串拼接.pdf

    在Robot Framework中,字符串拼接可以通过内置的`Catenate`关键字实现。`Catenate`提供了多种用法,可以根据实际需求选择合适的方式。 1. **基本用法**: ```robotframework ${result}= Catenate Hello World ``...

    2.Golang的基础语法(分隔符,注释,标识符,字符串拼接,空格)1

    本文将深入探讨四个主要概念:分隔符、注释、标识符以及字符串拼接,同时也会提及空格的使用。 首先,让我们来了解分隔符。与许多其他编程语言(如JAVA和PHP)不同,Golang不需要在每一行末尾添加英文分号(;)。这...

    将excal批量数据插入到postgresql数据库(目前实现字符串拼接的方式)

    在本教程中,我们将聚焦于如何将Excel数据批量导入到PostgreSQL数据库,特别关注一种常见的方法——通过字符串拼接的方式。PostgreSQL是一个功能强大的开源关系型数据库管理系统,而Excel则是广泛使用的电子表格工具...

    字符串拼接方式.png来自尚硅谷

    字符串拼接方式.png来自尚硅谷

    Python字符串拼接方法详解.docx

    Python 字符串拼接方法详解 Python 中的字符串拼接方法有多种,本文将通过实例详细讲解这几种方法的使用及各自的特点。 字符串拼接方法一:使用“+”连接 Python 中最简单的字符串拼接方法是使用“+”连接。例如...

    基于C语言的字符串拼接

    基于C语言的字符串拼接是一种常见的操作,用于将两个或多个字符串合并成一个完整的字符串。在C语言中,字符串实际上是以空字符 '\0' 结尾的字符数组。字符串拼接可以通过标准库函数 strcat 实现,或者手动遍历和复制...

    JAVA的字符串拼接[参照].pdf

    在Java编程中,字符串拼接是一项常见的操作,特别是在构建动态字符串或者处理文本数据时。本文主要探讨了在Java中几种不同的字符串拼接方法的性能差异,包括使用操作符`+`、`String.concat()`、`StringBuffer.append...

    StringBuilder字符串拼接工具

    标题"StringBuilder字符串拼接工具"暗示了我们讨论的核心是关于如何利用`StringBuilder`进行高效的字符串处理。在Java程序中,当需要动态地构建字符串,尤其是在循环或者递归中,`StringBuilder`是首选工具。它的...

    字符串拼接 聚合函数.rar

    在IT领域,字符串拼接和聚合函数是编程中常见的操作,尤其在处理数据时显得尤为重要。字符串拼接是指将两个或多个字符串连接成一个新字符串的过程,而聚合函数则是在一组值上执行计算并返回单个值的函数,通常用于...

    使用C 语言的字符串拼接的函数实现方式详解.docx

    c 字符串拼接C语言 strcat() 函数用来将两个字符串连接(拼接)起来。头文件:string.h语法/原型:char*strcat(char* strDestination, const char* strSource);参数说明:•strDestination:目的字符串;•strSource...

    c++字符串拼接.pdf

    c 字符串拼接在上面的代码中,我们定义了两个字符串`str1`和`str2`,分别赋值为"Hello"和"World!"。然后,我们使用加号运算符将两个字符串拼接起来,并将结果存储在`result`变量中。最后,使用`std::cout`输出拼接后...

Global site tag (gtag.js) - Google Analytics