2012-09-11 74 views
0

我有表客戶與列名VARCHAR(20),住址爲varchar(50),電話爲varchar(10)等SQL選擇最長字符

如何選擇最長的住址?

SELECT FROM customer 
WHERE adresse ? 

回答

2
select top (1) * from customer order by len(adresse) desc; 
0

試試這個:

select max(len(adresse)) from customer 
+0

喬,應該不是最後一個有len和max交換?你有什麼是_last_地址的長度(我認爲)。 – paxdiablo

+0

@paxdiablo:不,兩者都會給出相同的答案在sql server –

+0

然後,這將是一個嚴重破壞的實現,雖然如果你可以指向我說的文檔,我會給你一個upvote。在任何理性的實現中(我確信SQLServer至少是這個理性的),'aaaaa'和'zzz' varchars的'max'是'zzz',它的長度是3,顯然不是你想要的。你想要的是長度的最大值,而不是最大值的長度。 – paxdiablo

1

你可以用一個子查詢做到這一點:

select * from customer where len (adresse) = (
    select max (len (adresse)) from customer) 

內部查詢計算出在所有adresse列的最大長度,外部查詢爲您提供所有具有該長度的行。而且它可能是不止一個。

0
SELECT address FROM customer WHERE length(address) = (SELECT max(length(address)) FROM customer) 
+0

請詳細描述你的答案。 –