oracle 多字段去重查詢

oracle 多字段去重查詢

CreationTime--2018年6月29日15點11分

Author:Marydon

1.情景展現

  須要對錶BASE_MRI_DEVICE的COMPNAME、FIELDSTR、VERSION字段分別進行去重查詢,如何使用一個sql搞定?html

2.需求分析

  注意:是分別對3個字段進行去重,而不是3個字段聯合去重。sql

  首先,必須進行三次查詢,而將查詢結果進行"行合併"須要用到union或union all;數據庫

  其次,爲了區分查詢結果屬於哪一個字段,因此須要3列,oracle

  同時,爲了保證每次查詢只對一個字段進行去重查詢,能夠將另外2個字段置空。spa

3.代碼實現

  方式一:使用group by(數據庫通用)code

--對COMPNAME、FIELDSTR、VERSION進行去重查詢
SELECT *
  FROM (SELECT COMPNAME, '' FIELDSTR, '' VERSION
          FROM BASE_MRI_DEVICE
        UNION ALL
        SELECT '' COMPNAME, FIELDSTR, '' VERSION
          FROM BASE_MRI_DEVICE
        UNION ALL
        SELECT '' COMPNAME, '' FIELDSTR, VERSION
          FROM BASE_MRI_DEVICE)
 GROUP BY COMPNAME, FIELDSTR, VERSION

  方式二:使用distinct(Oracle獨有)htm

--對COMPNAME、FIELDSTR、VERSION進行去重查詢
SELECT DISTINCT COMPNAME, '' FIELDSTR, '' VERSION
  FROM BASE_MRI_DEVICE
UNION ALL
SELECT DISTINCT '' COMPNAME, FIELDSTR, '' VERSION
  FROM BASE_MRI_DEVICE
UNION ALL
SELECT DISTINCT '' COMPNAME, '' FIELDSTR, VERSION
  FROM BASE_MRI_DEVICE

4.效果展現

  方式一blog

  方式二get

 

相關文章
相關標籤/搜索