Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle Sql开发人员输出格式_Sql_Oracle - Fatal编程技术网

Oracle Sql开发人员输出格式

Oracle Sql开发人员输出格式,sql,oracle,Sql,Oracle,o/p- 我想要这样 COL1 COL2 COL3 6518 10060152650 534010002 6518 10060152651 534010002 6518 10060152652 534020003 6526 10060153296 534004002 6526 10060153310 534004542 6526 10060153365 533011103 6526 100601

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   

有人能帮我吗

SQL开发人员将显示您选择的行。当您的行包含Col1中的值时,将显示该值。因此,您唯一的解决方案是不选择它,或者在您的示例中:当前面的行已经包含相同的值时,不选择它。别忘了分类

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

这将对您有用:

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

下面是查询工作原理的示例。

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

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
    )

在格式上稍加努力就能得到快速响应。啊,谢谢你指出这一点。这是因为我使用col1作为别名,order by处理的是aslias,而不是原始字段。我认为这在Ora 10g中是不同的。我正在纠正它。以下是经过修改的SQL FIDLE:以如下方式完美工作:@ajmalmhd04:不要通过删除订单。没有它,就不能保证结果是正确的;我错误地认为这在Ora 10g中是不同的。完全一样。
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
    )
SQL>break on col1 nodup
SQL>select col1,col2,col3 from tab1 union all select col1,col2,col3 from tab2;