数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)
上一篇文章http://www.cnblogs.com/valiant1882331/p/4056403.html写的太长了,所以就换了一篇,链接上一节继续
- 字符串的拼接
- 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作为计算列的值.
- MySql中可以使用"+"来拼接两个字符串.
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执行完毕输出结果

- 在MYSQL中进行字符串的拼接要使用CONCAT函数(CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数mysql将尝试将其转换为字符串类型,CONCAT函数会将所有参数的顺序拼接成一个字符串做为返回值)
数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)的更多相关文章
- 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题
创建数据库表 create table person ( FName varchar(), FAge int, FRemark varchar(), primary key(FName) ) 基本sq ...
- MySQL 对分组后的同类数据进行拼接字符串
MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 //group_concat ...
- oracle 和 mysql 常用语句对比汇总
文章目录 一.数据库管理 1.1 用户管理 1.1.1 mysql用户.权限管理 1.1.2 oracle 用户.角色.权限管理 二.DQL 语句 2.1 基础查询 1.常量查询的区别: 2.字符串拼 ...
- SQL Server,Oracle,DB2索引建立语句的对比
原文引至:http://jvortex.blog.163.com/blog/static/16961890020122141010878/ 我们知道,索引是用于加速数据库查询的数据库对象.原理就是减少 ...
- 数据库开发 Oracle与mysql间的批量处理接口 SSIS+存储过程实现
公司目前不同的业务系统用了不同的数据库,涉及到oracle.mysql.sqlserver.而一些核心的业务在mysql中,所以平时经常要把oracle.sqlserver中的数据插入到mysql中. ...
- oracle,sqlserver,mysql常见数据库jdbc连接
发现JDBC连接字符串总是容易忘记,特此整理一下常用的几种数据的连接 ORACLE: /** * ORACLE * */ public static Connection getOracleConne ...
- Oracle导入的常见语句
登录sql > sqlplus / as sysdba 创建表空间sql > create tablespace TABLESPACE datafile 'e:\tables1.dbf' ...
- 【数据库】10.0 MySQL常用语句(一)
显示数据库语句: SHOW DATABASES 只是显示数据库的名字 显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE ...
- MYSQL常见语句
SHOW INDEXES from tablename EXPLAIN tablename EXPLAIN SELECT * FROM tablename
随机推荐
- ServletContext获取项目真实路径
import javax.servlet.ServletContext; import org.springframework.web.context.ServletContextAware; /** ...
- 如何用Windbg找到被catch住的C++的异常
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何用Windbg找到被catch住的C++的异常.
- PHP基本语法(一)
整形:就是对用整数 正整数与负整数整形的表示:int integer NOTICE:写整形的时候不要在外面再加引号了 浮点:就是小数 3.1415926Float 浮点 布尔值:男和女 真和假 阴和 ...
- Mac 解决SSH登录服务器终端乱码
一.Mac自带的终端 ssh 连接Linux 乱码,可用如下方法解决 终端 --> 偏好设置 --> 描述文件 --> 高级 --> 设为GBK 即可 二.secureCRT ...
- Palindrome(poj3974)(manacher算法)
http://poj.org/problem?id=3974 Palindrome Time Limit: 15000MSMemory Limit: 65536K Total Submissions: ...
- 选择排序、插入排序、冒泡排序python实现
选择排序的时间复杂度为O(n^2),是不稳定的排序 冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序 插入排序的时间复杂度最好情况下为O(n) ...
- Redis与MySQL的结合
Redis与MySQL的结合 目前大部分互联网公司使用MySQL作为数据的主要持久化存储,那么如何让Redis与MySQL很好的结合在一起呢?我们主要使用了一种基于MySQL作为主库,Redis作为高 ...
- TRUNCATE TABLE 与 DELETE table 区别
语法 TRUNCATE TABLE name;参数 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行. TRUNCATE TABLE ...
- Cookie中用户登录信息的提示
public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSe ...
- update 改写 merge into
update语句改写成merge into有时会提高运行速度 看两个案例 1.根据业务将两个嵌套子查询改写成max,速度有3min提升到3s UPDATE OPER_792.LL_SCB_YDKB_2 ...