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 ...
随机推荐
- String类,ThreadLocal
1,StringBuffer修改缓冲区的方法是同步的 单任务使用StringBuilder更有效 2,replace和replaceAll方法区别 3,spilt方法 a,b,c ...
- jq1.9.0以上版本不兼容live()解决方法
最近一个项目里用bootstrap做图形渲染,需要用到jq1.9以上版本,而copy的js代码里用到了live()方法,故两者产生了兼容问题,下面是解决方案: $('#my').on("cl ...
- virtualenv与virtualenvwrapper虚拟环境
python开发之virtualenv与virtualenvwrapper讲解 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物 ...
- 01day
01 cpu 内存 硬盘 操作系统 CPU:中央处理器,相当于人大脑. (运行速度飞机) 内存:临时存储数据. 8g,16g, (高铁) 1,成本高. 2,断电即消 ...
- 最全的MonkeyRunner自动化测试从入门到精通(3)
一.eclipse的下载安装与配置成安卓开发环境 步骤一:在官网上面进行下载eclipse,官网的网址:https://www.eclipse.org/downloads/ 步骤二:下载完成后可以在你 ...
- linux 通过pid 寻找程序路径的最简单命令(pwdx)
在linux实际操作命令中,查看pid的方式有很多种,通过pid找程序路径的方式也有好几个,但是可能大家都忽略的一个很简单也是很实用的命令:pwdx. 比如要查找某个java编写的程序运行情况可通过j ...
- form提交循环
使用ajax提交数据时,如果数据非常多,提交会比较麻烦,这时可以给form表一个id=“form”,用serializeArray()方法进行提交. erializeArray()方法通过序列化表单值 ...
- 3.1.2 Spring之IoC
二.Spring之IoC 1. IoC与DI (1) IoC 控制反转( IoC, Inversion of Control) , 是一个概念, 是一种思想. 控制反转就是对对象控制权的转移, 从程序 ...
- Python记录10:模块
''' 1. 什么是模块 模块就一系列功能的集合体 模块有三种来源: 1. 内置的模块 2. 第三方的模块:pip install +模块名称 ...
- Zookeeper应用之——选举(Election)
请注意,此篇文章并不是介绍Zookeeper集群内部Leader的选举机制,而是应用程序使用Zookeeper作为选举. 使用Zookeeper进行选举,主要用到了Znode的两个性质: 临时节点(E ...