簡體   English   中英

使用選擇不同的多個列,但所有列都必須是不同的

[英]using select distinct with multiple columns but all columns musnt be distinct

我需要表中的所有列,但兩列必須是不同的。 我使用了這段代碼,但是它檢查了所有列,但是我只需要將其中的兩個分開即可。 我該如何滿足?

select distinct a.personalId, a.fileId, a.name, a.surname, a.address from my_table a

如果使用以下代碼,則無法獲得其他列:

select distinct a.personalId, a.fileId from my_table a

Postgresql支持DISTINCT ON語法: http : //www.postgresql.org/docs/current/interactive/sql-select.html

select distinct on (a.personalId, a.fileId) a.personalId, a.fileId, a.name, a.surname, a.address
from my_table a

看到Oracle等同於Postgres的DISTINCT ON嗎? 有關如何在Oracle中執行此操作。

如果其他列不同,該怎么辦? 數據庫應如何選擇要顯示的值? 答案是“不能”,並且因為不能,所以沒有語法可以這樣做(這是一個邏輯錯誤)。

MySQL確實有擴展,它將隨機選擇值。

select a.personalId, a.fileId, a.name, a.surname, a.address
from my_table a
group by a.personalId, a.fileId

但是我不建議依賴於此。 您需要重新考慮所使用的邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM