Oracle Sql Developer输出格式

时间:2013-12-10 08:01:40

标签: sql oracle

select col1,col2,col3 from tab1 union all
select col1,col2,col3 from tab2

O / P -

COL1       COL2       COL3
6518    10060152650 534010002   
6518    10060152651 534010002   
6518    10060152652 534020003   
6526    10060153296 534004002   
6526    10060153310 534004542   
6526    10060153365 533011103   
6526    10060153328 534010002   
6526    10060153348 534010002   

我想要这样

COL1  COL2         COL3
6518  10060152650  534010002    
      10060152651  534010002    
      10060152652  534020003    
6526  10060153296  534004002    
      10060153310  534004542    
      10060153365  533011103    
      10060153328  534010002    
      10060153348  534010002

任何人都可以帮助我...... !!

3 个答案:

答案 0 :(得分:5)

SQL开发人员会显示您选择的行。由于您的行包含Col1中的值,因此将显示。因此,您唯一的解决方案不是选择它,或者在您的示例中:当前一行包含相同的值时,不要选择它。别忘了排序。

select 
  case when col1 = lag(col1) over (order by col1, col2, col3) then
    null 
  else 
    col1
  end as colx
, col2
, col3
from
(
  select col1,col2,col3 from tab1 union all
  select col1,col2,col3 from tab2
)
order by col1, col2, col3

答案 1 :(得分:2)

这对你有用:

SELECT CASE 
          WHEN RANK() OVER (PARTITION BY col1 ORDER BY col2) <> 1
            THEN ''
          ELSE TO_CHAR(col1)
        END AS col1,
    col2,
    col3
FROM (
    SELECT col1, col2, col3
    FROM tab1

    UNION ALL

    SELECT col1, col2, col3
    FROM tab2
    )

以下是SQLFiddle,其中包含查询的工作原理。

答案 2 :(得分:0)

sql * plus具有报表布局命令。 SQLDeveloper显示数据网格。

SQL>break on col1 nodup
SQL>select col1,col2,col3 from tab1 union all select col1,col2,col3 from tab2;