我想選擇最短和最長的名稱,如果有多個名稱的長度相同,我應該得到第一個按名稱排序的名稱如何從SQL Server中的聚合方法獲取不同的值
例如,如果我有這些值:
'abc', 'def', 'abcd', 'defghi', 'ghi'
我應該得到的東西像
abc 3
defghi 6
這是我的查詢
select
Name, LEN(Name)
from
Customer
where
len(Name) = (select min(len(Name)) from Customer)
or
len(Name) = (select max(len(Name)) from Customer)
order by
Name;
但這裏是我得到
abc 3
def 3
defghi 6
ghi 3
我相信這是正確的方法,但不是有效的SQL Server語法,所有派生表都需要一個別名,而且您還需要一個外部選擇,因爲即使子查詢有一個別名,這也會失敗。 – GarethD
@GarethD。 。 。謝謝。有趣的是,我還沒有意識到SQL Server不支持'union' /'union all'語句中的圓括號。無論如何,我通常會用子查詢寫這樣的語句(如修改後的答案)。 –