如何为oracle的数据添加新的行分隔符

时间:2017-06-01 23:05:44

标签: oracle oracle-apex

我正在努力展示来自oracle的数据 有没有办法在表格中制作以下数据:

示例:

  

' 1.somedata,2.somedata,3.somedata,4.somedata,5.somedata'

显示如下:

示例:

  

' 1。 somedata
   有些数据    有些数据    有些数据    5. somedata'

界面上的

我是否直接在数据中添加新行分隔符?

或者我在查询时将它们分隔成新行?

还是有其他简单的方法吗?

感谢。

4 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,如果您从列中选择,则可以使用以下方法:

 SELECT REPLACE ('1.somedata, 2.somedata, 3.somedata, 4.somedata, 5.somedata', ',', CHR (13) || CHR (10)) AS split
      FROM DUAL;
1.somedata
 2.somedata
 3.somedata
 4.somedata
 5.somedata

答案 1 :(得分:1)

我个人会使用listagg函数并使用'
'作为分隔符。

SELECT LISTAGG(last_name,'
')          WITHIN GROUP(ORDER BY hire_date,last_name)“Emp_list”,        MIN(hire_date)“最早的”   来自员工   在哪里department_id = 30;

答案 2 :(得分:0)

检查下面的示例查询,它将逗号分隔的列表数据转换为行

SELECT substr( '1.AL,2.AL,3.AL,4.AL,5.AL,6.AL,',
                               ( case when rownum = 1      then 1
                                      else instr( '1.AL,2.AL,3.AL,4.AL,5.AL,6.AL,', ',', 1, rownum - 1 ) + 1 
                                  end ),

                                instr( substr( '1.AL,2.AL,3.AL,4.AL,5.AL,6.AL,',
                                                                     ( case when rownum = 1    then 1
                                                                            else instr( '1.AL,2.AL,3.AL,4.AL,5.AL,6.AL,', ',', 1, rownum - 1 ) + 1 
                                                                        end )
                                ), ',' ) - 1

            ) as data
FROM dual
CONNECT BY LEVEL <= length( '1.AL,2.AL,3.AL,4.AL,5.AL,6.AL,' ) - length ( replace('1.AL,2.AL,3.AL,4.AL,5.AL,6.AL,', ',') )

希望这会对你有帮助!

答案 3 :(得分:0)

请记住,Apex正在生成一个网页,这意味着最终结果是HTML。但是,Apex有时也会为您转义特殊的HTML字符,例如&lt;和&amp ;.由于您正在查看某个表格,因此我认为您的数据来源是一个查询,而您的数据来自于某些数据。字段是单列。试试这个:

SELECT REPLACE( somedata_column, ',', '<br />' )
  FROM mytable

你不能说出什么版本的Apex。在Apex 4.x中,该列需要设置为标准报告列,这将阻止Apex从<br>元素。我忘记了Apex 5.x中的列类型。