2017-02-27 63 views
0

我正在使用類似MAX的集合,對varchar列使用了集合。當我在varchar列上執行一個簡單的選擇時,我得到4個字符值,它是「övrö」。在那一欄中,我發現了很多長度更大的值。我的理解是它應該返回一個值,如「asdfsadfasdfasdfsadfsdafsdafsadfasdfsadfasdf」SQL Server 2012:MAX on varchar列未按預期方式工作

如果我誤解/誤用MAX,請糾正我,因爲我必須在複雜的SQL中使用此概念以避免重複記錄。

如果MAX on varchar根據字母順序獲取最高記錄,如果我將它用於特定列(如附圖所示#2和3),它如何仍然會導致重複值紅色邊框區域顯示重複項,這應該只是一個單行

RESULTS

編輯 - 已解決的問題

的問題是,我是添加字符串列在小組聚集由條款,刪除時,重複都不見了! !!

感謝您的幫助。

+3

'max()'基於字母順序而不是長度。 –

回答

1

最小值和最大值取最大值。對於varchar,它不是長度,但想象它們按字母順序排序。 Max取最後一個元素,min取第一個。

如果你想取最大長度,你需要max(長度(列))