Oracle SQL,连接多个列+添加文本

所以我基本上想显示这个(整列在一列):

我喜欢[型柱]蛋糕与[结冰柱]和[水果柱]。

结果应该是:

Cake_Column ---------------- I like chocolate cake with whipped_cream and a cherry. I like strawberry cake with vanilla_cream and a lemon_slice. etc. etc. 

我需要某种types的TO_CHAR语句([列]“一些文本”[列])“new_column_name”;

我应该知道什么?

在Oracle中有两个连接string的选项:

  • CONCAT
  • 使用||

CONCAT示例:

 CONCAT( CONCAT( CONCAT( CONCAT( CONCAT('I like ', t.type_desc_column), ' cake with '), t.icing_desc_column), ' and a '), t.fruit_desc_column) 

使用|| 例:

 'I like ' || t.type_desc_column || ' cake with ' || t.icing_desc_column || ' and a ' || t.fruit_desc_column 

你尝试过||吗? 操作员?

检查了这一点>>>

select“我喜欢”|| type_column || '与'ect ….

下面的查询对我有用@Oracle 10G —-

 select PHONE, CONTACT, (ADDR1 || '-' || ADDR2 || '-' || ADDR3) as Address from CUSTOMER_DETAILS where Code='341'; 

O / P –

1111 abc@gmail.com 4th street-capetown-sa

尝试这个:

 SELECT 'I like ' || type_column_name || ' cake with ' || icing_column_name || ' and a ' fruit_column_name || '.' AS Cake_Column FROM your_table_name; 

它应该将所有数据连接为一个名为“Cake_Column”的单个列条目。

从Oracle 11开始,有一个名为LISTAGG的新function,可以完成与您在此处所需的类似的function。

例:

  SELECT LISTAGG(last_name,';') 
  WITHIN GROUP(ORDER BY hire_date,last_name)“Emp_list”, 
               MIN(hire_date)“最早” 
    FROM employees WHERE department_id = 30; 

 Emp_list最早 
 -------------------------------------------------- ---------- ---------
 Raphaely;邱; 托比亚斯; 百达; 冰室;  Colmenares 07-DEC-02

Oracle文档LISTAGG