oracle数据库 concat 与 ||
1.简述:
通过几条sql语句来引入此问题
先新建一张表,插入几条数据,如下:
CREATE TABLE tab1 (col1 VARCHAR2(6), col2 CHAR(6),
col3 VARCHAR2(6), col4 CHAR(6) );
INSERT INTO tab1 (col1, col2, col3, col4)
VALUES ('abc', 'def ', 'ghi ', 'jkl');
INSERT INTO tab1 (col1, col2, col3, col4)
VALUES ('1a', '456 ', '321 ', '234');
INSERT INTO tab1 (col1, col2, col3, col4)
VALUES ('45345', '656 ', '65 ', 'a1');
在根据条件模糊查询的时候,有如下三种写法:
SELECT * from tab1 t where t.col1 like '%a%';
SELECT * from tab1 t where t.col1 like '%' || 'a' || '%';
SELECT * from tab1 t where t.col1 like concat(concat('%','a'),'%');
如上三种写法的等效的,最常用的是第一张写法,第二种第三种使用拼接,但是不同在于 || 可以无限拼接,类似于拼接字符串时候的 +,而concat 是oracle中的函数,CONCAT(char1 , char2),此函数中有且仅有2个参数,所以第三种写法拼接了2次。
2.其他用法
如下sql:
SELECT col1||col2||col3||col4 "Concatenation" FROM tab1;
查询结果如下:

SELECT 'col1=' || t.col1 || ',col2=' || t.col2 "字段拼接"
FROM tab1 t;
查询结果如下:

也就是当我们需要自定义查询结果的时候,使用||拼接。
3.我所用过的案例:
在java中需要向 map 集合里面 put 多个表中的数据。
SELECT 'map.put("' || t.col1 || '","' || t.col2 || '")' "put"
FROM tab1 t;
这样的查询结果如下:

这样就可以将结果复制到java代码里去使用了。
注:在oracle中,需要上述多次拼接应使用||,因为concat()一次只能拼接2个,需要多次嵌套。而在mysql中,可以实现concat(col1,col2,coln....)
本文所有建表,插入,查询都是oracle数据库。
最后,还是应该多参考官方文档,链接如下:
CONCAT
Concatenation Operator
oracle数据库 concat 与 ||的更多相关文章
- Mysql和Oracle数据库concat()函数
一.函数的使用参数不同 Mysql支持多个字符串拼接: CONCAT(str1,str2,-) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1, ...
- Oracle数据库基础知识2
字符操作相关_1 1.CONCAT关键字作用:连接字符串语法:CONCAT(字串1, 字串2)例如: CONCAT('hello','world') FROM DUAL; 注意:Oracle的CONC ...
- oracle数据库中的基本语句
下面的都是最基本的oracle数据库的数据查询语句,这是我在网上整理的一份文档,方便以后自己的查看,当然,能把这些记下来就是最好的. 说明:查询表中的数据 1. select * from emp; ...
- ASP.NET操作ORACLE数据库之模糊查询
ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...
- oracle 数据库时间类型为字符串 时间范围大小查询
select * from invoicedetail t2 where t2.Memo is null and to_char(to_date(t2.PrintDate,'yyyy-MM-dd hh ...
- ORACLE数据库 DBA常用知识
<常用命令参考> 个系统变量值 SQL> show user --显示当前连接用户 SQL> show error --显示错误 SQL> set heading off ...
- MySql和Oracle数据库区别
Oracle与mysql区别: 1.Oracle有表空间,mysql没有表空间. 2.mysql的char类型取值范围0-255字节,varchar为0-65535字节 3.oracle的char类型 ...
- oracle数据库自学笔记(持续更新中……)
以前的项目都是使用mysql数据库开发的,如今进了新的公司,开始接触到了Oracle数据库,而自己以前没有接触过,就自己挤时间来学习一下. 一.关系型数据库的概念 关系型数据理论由E.F.Codd博士 ...
- Oracle数据库常用Sql语句大全
一,数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...
随机推荐
- Oracle ROWNUM用法和分页查询总结
**************************************************************************************************** ...
- RTOS 和中断之间要注意的
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRI ...
- asp.net mvc 简单实现一个账号只能在一个地方登录
原理: 假设用户在机器A登陆后, 这时用户再次在机器B登陆,会以当前会话的SessionID作为键,用户id作为值,插入dictionary集合中,集合再保存在application(保存在服务器 ...
- git常用操作命令使用说明
设置用户名和邮箱 git config --global user.email 'xxx' git config --global user.name 'xxx' 创建分支 git branch xx ...
- spring--给配置文件.properties加密
11111111111编写类并继承PropertyPlaceholderConfigurer.java package com.xx.encryptDecrypt; import java.util. ...
- 用热情点燃软件工程II
这个作业的要求来自于:https://www.cnblogs.com/greyzeng/p/9581624.html 阅读完文章(热情.能力.选择)深有感触.文章链接为:http://coolshel ...
- linear-gradient常用实现效果
之前也研究过css3的这个属性,感觉没什么大用,一般的开发不会用到,毕竟调出来的渐变不专业,不如找一个好看的图片,其实很多时候还是有用的,偷来三个例子. 一.控制虚线 一般写虚线都用dashed,但有 ...
- Android -- 从源码带你从EventBus2.0飚到EventBus3.0
1,最近看了不少的面试题,不管是百度.网易.阿里的面试题,都会问到EventBus源码和RxJava源码,而自己只是在项目中使用过,却没有去用心的了解它底层是怎么实现的,所以今天就和大家一起来学习学习 ...
- RAMPS1.4 3d打印控制板接线与测试
“工欲善其事,必先利其器”,在开始工作之前,你应该准备下面所说的工具(包括软件和硬件). 1.需要下载的软件 1.1 固件上传工具——Arduino IDE 这是上传固件的必备工具,有了这个软件让上传 ...
- zw·10倍速大数据与全内存计算
zw·10倍速大数据与全内存计算 zw全内存10倍速计算blog,早就在博客园机器视觉栏目发过,大数据版的一直挂着,今天抽空补上. 在<零起点,python大数据与量化交易>目录中 htt ...