上一篇文章http://www.cnblogs.com/valiant1882331/p/4056403.html写的太长了,所以就换了一篇,链接上一节继续

  1. 字符串的拼接
    • MySql中可以使用"+"来拼接两个字符串.

      select ''+'',FAge+'' from t_employee

      执行完毕会输出,下面是解释:在Mysql中当用+连接两个字段的时候,Mysql会尝试将字段值转换为数字类型(如果转换失败则默认字段值为0),然后进行字段的加法运算,因此,当计算'12'+'33'的时候,mysql会将"12"和"33"这两个字符串尝试转换为数字类型的12和33,然后计算12+33的值,所以第一列是45,同样,在计算fage+'1'的时候,由于fage本来就是数字类型,不需要转换,会尝试转换'1',然后计算fage+1作为计算列的值.

  1. select 'abc'+'',fage+'a' from t_employee

    执行完毕不能准换成功输出

    • 在MYSQL中进行字符串的拼接要使用CONCAT函数(CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数mysql将尝试将其转换为字符串类型,CONCAT函数会将所有参数的顺序拼接成一个字符串做为返回值)

      select concat('工号为:',fnumber,'的员工的幸福指数:',fsalary/(fage-21)) from t_employee

      执行完毕会输出concat支持只有一个参数的用法,这时的concat可以看作是一个将这个参数值尝试转换为字符串类型值的函数

    •   MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS(CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分隔符,而剩下的参数则为待拼接的字符串值)
      select concat_ws(',',fnumber,fage,fdepartment,fsalary)from t_employee

      执行完毕结果输出

    • MSSQLServer(MSSQLServer中可以直接使用加号“+”来拼接字符串)

      select '工号为'+fnumber+'的员工姓名为'+fname from t_employee where fname is not null

      执行完毕结果输出

    • Oracle(Oracle中使用“||”进行字符串拼接,方式与MSSQLServer中的"+"一样)
      SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL

      执行完毕输出结果;
      并且.除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接

      SELECT CONCAT('工号:',FNumber) FROM T_Employee

      执行完毕输出结果;
      如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串

      SELECT CONCAT('年龄:',FAge) FROM T_Employee

      执行完毕输出结果
           与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,否则会报参数无效,如果要进行多个字符串的拼接的话,可以使用多个concat()函数嵌套使用

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

      执行完毕输出结果

    • DB2(DB2中使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样)
      SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL

      执行完毕输出结果
        除了“||”,DB2还支持使用CONCAT()函数进行字符串拼接

      SELECT CONCAT('工号:',FNumber) FROM T_Employee

      执行完毕输出结果与Oracle不同,如果CONCAT中连接的值不是字符串,则DB2不会尝试进行类型转换而报错;比如

      --这句是错误的
      SELECT CONCAT('年龄:',FAge) FROM T_Employee

      运行以后DB2会报出:未找到类型为 "FUNCTION" 命名为 "CONCAT" 且具有兼容自变量的已授权例!!!!!!与MYSQL的CONCAT()函数不同,DB2的CONCAT()函数只支持两个参数.如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用

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

      执行完毕输出结果

数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)的更多相关文章

  1. 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题

    创建数据库表 create table person ( FName varchar(), FAge int, FRemark varchar(), primary key(FName) ) 基本sq ...

  2. MySQL 对分组后的同类数据进行拼接字符串

    MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 //group_concat ...

  3. oracle 和 mysql 常用语句对比汇总

    文章目录 一.数据库管理 1.1 用户管理 1.1.1 mysql用户.权限管理 1.1.2 oracle 用户.角色.权限管理 二.DQL 语句 2.1 基础查询 1.常量查询的区别: 2.字符串拼 ...

  4. SQL Server,Oracle,DB2索引建立语句的对比

    原文引至:http://jvortex.blog.163.com/blog/static/16961890020122141010878/ 我们知道,索引是用于加速数据库查询的数据库对象.原理就是减少 ...

  5. 数据库开发 Oracle与mysql间的批量处理接口 SSIS+存储过程实现

    公司目前不同的业务系统用了不同的数据库,涉及到oracle.mysql.sqlserver.而一些核心的业务在mysql中,所以平时经常要把oracle.sqlserver中的数据插入到mysql中. ...

  6. oracle,sqlserver,mysql常见数据库jdbc连接

    发现JDBC连接字符串总是容易忘记,特此整理一下常用的几种数据的连接 ORACLE: /** * ORACLE * */ public static Connection getOracleConne ...

  7. Oracle导入的常见语句

    登录sql > sqlplus / as sysdba 创建表空间sql > create tablespace TABLESPACE datafile 'e:\tables1.dbf' ...

  8. 【数据库】10.0 MySQL常用语句(一)

    显示数据库语句: SHOW DATABASES    只是显示数据库的名字 显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE ...

  9. MYSQL常见语句

    SHOW INDEXES  from tablename EXPLAIN  tablename EXPLAIN SELECT *  FROM tablename

随机推荐

  1. Xenomai 的模式切换浅析

    在Xenomai的用户空间下,有两种模式:primary mode (主模式) 和 secondary mode(次模式). 在主模式下调用Linux系统调用后程序就会进入次模式,反之,在次模式下调用 ...

  2. NGUI 3.5教程(六)Font字体

    字体是UI很重要的一部分.今天用NGUI 3.5,制作一下字体. 以下是我做的一个射击游戏的DEMO.子弹数量,就使用了NGUI的字体显示.效果例如以下: 步骤: 1,寻找(或者制作)字体.我这里图方 ...

  3. 正尝试在 OS 载入程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起。

    出错提示: 正尝试在 OS 载入程序锁内执行托管代码. 不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起. 原因分析: .NET2.0中添加了42种非常强大的调试助 ...

  4. Vim 快捷键整理

    一.移动光标 1.左移h.右移l.下移j.上移k 2.向下翻页ctrl + f,向上翻页ctrl + b 3.向下翻半页ctrl + d,向上翻半页ctrl + u 4.移动到行尾$,移动到行首0(数 ...

  5. 多态VI的创建

    比较适合使用多态VI的场合:一个算法会应用到几种不同的数据类型上.比如读写 INI 文件的 VI,它 们既可以读写数值型的数据,也可以读写字符串.布尔等数据类型. 实现多态 VI 之前,一般先实现它的 ...

  6. gulp 实践

    文档站YDoc 相关注意事项 sass 编译 目录结构 可以直接使用sass编译 ➜ ydoc git:(v2) ✗ sass ./sass/app.scss ./template/source/ap ...

  7. c# 枚举基础有[flags]和没有的的区别

    枚举提供成组的常数值,它们有助于使成员成为强类型以及提高代码的可读性.在 C# 中,使用 enum 来声明枚举. 枚举分为简单枚举和标志枚举两种. 基本语法示例 enum Day { Sun, Mon ...

  8. JVM笔记4:Java内存分配策略

    简单来说,对象内存分配主要是在堆中分配.但是分配的规则并不是固定的,取决于使用的收集器组合以及JVM内存相关参数的设定 以下介绍几条基本规则(使用的ParNew+Serial Old收集器组合): 一 ...

  9. volatile的使用原则

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/4352802.html ...

  10. Oracle JDBC通过占位符可以查询可变长字段,不可查询固定长度字段

    这个问题在半年前,花了我两天的时间才解决,现在刚好想起来,顺便记录一下以防忘了. 通过jdbc,预编译的sql,无法查询到固定长度的字段. 用例子说话: 创建一个表,只有一个字段,长度为固定的char ...