sql选择表的多个列

时间:2012-01-04 22:06:32

标签: sql oracle select

我正在尝试从oracle DB中的表中进行选择。

如果我在单列上的select语句中做了不同的工作,它可以正常工作,但对于多列,这似乎不起作用。

例如。

select DISTINCT col1, col2, col3, col4, col5, col6 from table1

返回与。

相同的结果
select * from table1

第2列,Column3具有重复值。我想要的是所有上述列值的值,但不是column2和column3的重复值。

你能帮忙吗?我们将非常感谢您的帮助。

由于

2 个答案:

答案 0 :(得分:5)

DISTINCT消除了每行和所选列的冗余数据。因此,如果使用DISTINCT选择表的所有列,则只聚合哪些列包含完全相同的数据。

答案 1 :(得分:1)

尝试以下方法:

SELECT DISTINCT COL1 AS COL1, NULL AS COL2, NULL AS COL3, NULL AS COL4,
       NULL AS COL5, NULL AS COL6 FROM TABLE1
UNION ALL
SELECT NULL AS COL1, DCOL2 AS COL2, NULL AS COL3, NULL AS COL4,
       NULL AS COL5, NULL AS COL6 FROM (SELECT DISTINCT COL2 AS DCOL2
                                          FROM TABLE1)
UNION ALL
SELECT NULL AS COL1, NULL AS COL2, DCOL3 AS COL3, NULL AS COL4,
       NULL AS COL5, NULL AS COL6 FROM (SELECT DISTINCT COL3 AS DCOL3
                                          FROM TABLE1)
UNION ALL
SELECT NULL AS COL1, NULL AS COL2, NULL AS COL3, DCOL4 AS COL4,
       NULL AS COL5, NULL AS COL6 FROM (SELECT DISTINCT COL4 AS DCOL4
                                          FROM TABLE1)
UNION ALL
SELECT NULL AS COL1, NULL AS COL2, NULL AS COL3, NULL AS COL4,
       DCOL5 AS COL5, NULL AS COL6 FROM (SELECT DISTINCT COL5 AS DCOL5
                                           FROM TABLE1)
UNION ALL
SELECT NULL AS COL1, NULL AS COL2, NULL AS COL3, NULL AS COL4,
       NULL AS COL5, DCOL6 AS COL6 FROM (SELECT DISTINCT COL6 AS DCOL6
                                           FROM TABLE1);

分享并享受。

相关问题