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‘),‘%‘);

如上三种写法的等效的,最常用的是第一张写法,第二种第三种使用拼接,但是不同在于 || 可以无限拼接,类似于拼接字符串时候的 +,而concatoracle中的函数,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

原文地址:https://www.cnblogs.com/kangkaii/p/8421837.html

时间: 2024-08-13 02:48:21

oracle数据库 concat 与 ||的相关文章

Mysql和Oracle数据库concat()函数

一.函数的使用参数不同 Mysql支持多个字符串拼接: CONCAT(str1,str2,-) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1,str2) 二.参数中有Null的处理方式不同 Mysql:返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. Oralce:如有任何一个参数为NULL ,则返回值拼接后的字符串. 三.其它方面 Mysql:如果所有参数均为非二进制字符串,则结果为非二进制字符串.

oracle数据库

一. 表空间,用户及授权 1. 创建表空间 Create tablespace waterboss Datafile 'c:\waterboss.dbf' Size 100m Autoextend on Next 10m 解释: Waterboss:表示表空间的名称 Datafile:表示存储到硬盘的物理路径文件 Size:用于设置表空间的初始的大小 Autoextends on:表示设置空间自动增长开启,超过容量自动扩容 Next:每次扩容的大小,表示10兆. 2. 创建用户 Create u

dos命令行连接操作ORACLE数据库

C:\Adminstrator> sqlplus "/as sysdba" 查看是否连接到数据库 SQL> select status from v$instance; v$动态表开头,查看动态实例,open为启动. SQL> shutdown immediate关闭数据库 SQL> startup 继续启动 SQL> show parameter db_name 查看数据库名称 查询数据库SCOTT用户默认的状态 SQL> select usern

Oracle数据库常用Sql语句大全

一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, --) VALUES ( 值1, 值2, --); INSERT INTO 表名(字段名1, 字段名2, --)  SELECT (字段名1, 字段名2, --) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: 'GOOD DAY' 如果字段值里包含单引号' 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过

C#远程连接Oracle数据库(通过System.Data.OracleClient)

在.NET中使用System.Data.OracleClient库连接Oracle数据库的步骤 1.下载并安装Instant Client Instant Client可以在Oracle官方网站下载到 对于Windows,Instant Client有三种版本: 1)适用于 Microsoft Windows(32位)的 Instant Client 2)适用于 Microsoft Windows(64位)Itanium的 Instant Client 3)适用于 Microsoft Windo

Oracle数据库入门——sql语句和函数详解

一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构的数据定义语言命令有: create table alter table truncate table drop table eg. --创建tb_stu表数据结构 create table tb_stu( id number, name varchar2(20) );   --修改tb_stu表数

ASP.NET操作ORACLE数据库之模糊查询

ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 1 //连接Oracle数据库的连接字符串 2 string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) 3 (HOST=localhost) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TestDB)))

oracle数据库笔记之基础部分

创建用户 CREATE USER 用户名 IDENTIFIED BY 用户密码 [DEFAULT TABLESPACE default_tablespace]--作用是用户的默认表空间 [TEMPORARY TABLESPACE temporary_tablespace];--作用是临时用户默认的表空间 create user identified by 123; 删除用户 drop user 用户名 [cascade --作用是级联删除即删除用户的对象(表..),但注意删除是这些对象没有被其它

MySQL/Oracle数据库的基础(二)

MySQL/Oracle数据库 Oracle数据库管理系统是管理数据库访问的计算机软件,由Oracle数据库与Oracle实例构成 Oracle数据库:一个相关的操作系统文件集合,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库.Oracle数据库必须要与内存实例合作,才能对外提供数据管理服务. Oracle实例:位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被进程锁访问. Oracle用它们来管理数据库访问 Oracle实例就是平常所