如何在oracle sql的两列上使用不同的关键字?



我在一列上使用了不同的关键字,它确实工作得很好,但是当我在选择查询中添加第二列时,它不适合我,因为两列都有重复的值。所以我不想在两列中都显示重复的值。有合适的select查询吗?


对于Col001:
555
555
7878
7878
89.

Col002:

43
43
56
56
56
67
67
67
79
79
79.

我想要这些数据在这个格式:Col001:

555
7878
89.

Col002:

43
56
67
79

我尝试了以下查询:

Select distinct col001, col002 from tbl1

使用集合操作符。UNION将为您提供来自两个子查询的唯一值集。

select col001 as unq_col_val 
from your_table
union
select col002 
from your_table;

这假定您不关心值是来自COL001还是COL002。如果您担心,这个变体保留了该信息:

select  'COL001' as source_col
,col001 as unq_col_val 
from your_table
union
select 'COL002' as source_col
,col002 
from your_table;

请注意,如果两列中存在相同的值,则此结果集将包含更多行。

DISTINCT在整个行中工作,考虑行中的所有值,并将删除整个行中重复的值。

例如,给定样例数据:

CREATE TABLE table_name (col001, col002) AS
SELECT 1, 1 FROM DUAL UNION ALL
SELECT 1, 2 FROM DUAL UNION ALL
SELECT 1, 3 FROM DUAL UNION ALL
SELECT 2, 1 FROM DUAL UNION ALL
SELECT 2, 2 FROM DUAL UNION ALL
--
SELECT 1, 2 FROM DUAL UNION ALL -- These are duplicates
SELECT 2, 2 FROM DUAL;

:

SELECT DISTINCT
col001,
col002
FROM   table_name

输出:COL0023

相关内容

最新更新