搜索
您的当前位置:首页正文

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代码里去使用了。
Top