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
任何人都可以帮助我...... !!
答案 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;