博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle数据库 concat 与 ||
阅读量:6542 次
发布时间:2019-06-24

本文共 1313 字,大约阅读时间需要 4 分钟。

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;

查询结果如下:

1331009-20180206131252904-837246467.png

SELECT 'col1=' || t.col1 || ',col2=' || t.col2 "字段拼接"        FROM tab1 t;

查询结果如下:

1331009-20180206131320326-148885670.png

也就是当我们需要自定义查询结果的时候,使用||拼接。

3.我所用过的案例:

java中需要向 map 集合里面 put 多个表中的数据。

SELECT 'map.put("' || t.col1 || '","' || t.col2 || '")' "put"        FROM tab1 t;

这样的查询结果如下:

1331009-20180206131357826-473890484.png

这样就可以将结果复制到java代码里去使用了。

注:在oracle中,需要上述多次拼接应使用||,因为concat()一次只能拼接2个,需要多次嵌套。而在mysql中,可以实现concat(col1,col2,coln....)

本文所有建表,插入,查询都是oracle数据库。
最后,还是应该多参考官方文档,链接如下:

转载于:https://www.cnblogs.com/kangkaii/p/8421837.html

你可能感兴趣的文章
纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!...
查看>>
java 为啥变量名前要加个m?
查看>>
探索Android中的Parcel机制(上)
查看>>
c++ 类型定义
查看>>
C#开发微信门户及应用(5)--用户分组信息管理
查看>>
怎样实现前端裁剪上传图片功能
查看>>
ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
查看>>
2011/7/3 第二次评审
查看>>
Openvswitch手册(2): OpenFlow Controller
查看>>
tar解压
查看>>
inheritprototype原型继承封装及综合继承最简实例
查看>>
【磁耦隔离接口转换器】系列产品选型指南
查看>>
Apriori 关联算法学习
查看>>
Junit核心——测试集(TestSuite)
查看>>
MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
查看>>
Log4j_学习_00_资源帖
查看>>
制作iso镜像U盘自动化安装linux系统
查看>>
JSLint的使用
查看>>
命令行常用命令--软连接
查看>>
HTTP POST GET 本质区别详解
查看>>