我有這個查詢
select distinct a.addressID,a.StreetNumber,a.Street,a.StreetType,a.PostalCode
from Address a
inner join UserAdress ca on a.addressID = ca.addressID
addressID 在所有情況下都不同,如果我洗掉 addressID 并查詢表,我會得到唯一的記錄。但是如果我保留 addressID 并查詢它,我會得到重復的記錄。我看到 userAddress 表有 2 個條目,我想從中獲取 1 個 ID,這樣我就可以獲得唯一的地址
請指導這里發生的事情,我如何重寫連??接以進行查詢以獲取一條記錄,然后將其映射到地址表
不想使用,rownum因為那沒有給出正確的結果
uj5u.com熱心網友回復:
如果 addressID 是一個數字,并且您可以像這樣使用 MAX 或 MIN 來使用組
select Max(a.addressID) as addressID, a.StreetNumber,a.Street,a.StreetType,a.PostalCode
from Address
group by a.StreetNumber,a.Street,a.StreetType,a.PostalCode
uj5u.com熱心網友回復:
如果你只想得到一個地址,你可以使用Min()和Max()函式 withOVER()子句:
select distinct Max(a.addressID) OVER(ORDER BY a.addressID) AS addressID,
a.StreetNumber,
a.Street,
a.StreetType,
a.PostalCode
from Address a
inner join UserAdress ca on a.addressID = ca.addressID
詳情請見:MIN(T-SQL)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/363543.html
標籤:sql sql-server
上一篇:在SQL中搜索的100個用戶名
下一篇:滑動擴展影片旁邊的專案
