2010-07-02 32 views
2

我在MS SQL Server 2008中有一個表,名爲WONO的varchar列。對於大多數的記錄,此字段的值是一個軟墊上最左邊的整數的字符串表示,如:如何獲得可以從SQL Server轉換爲int的最大字符串值?

' 384564' 

然而,在某些情況下,在該領域的非整數值。我想選擇WONO列中具有最大整數的記錄,忽略那些在那裏沒有整數的記錄。這是什麼選擇聲明?

回答

1
SELECT MAX(cast(WONO as integer)) AS WONO FROM 
(
    SELECT WONO 
    FROM YourTable 
    WHERE ISNUMERIC(WONO) = 1 
) SubTable 

請記住,當你有這樣的東西1E1或因ISNUMERIC如何處理某些字符串(1E1和2D2通過ISNUMERIC實際上是考慮指數)2D2,這可能採取行動怪異。如果這成爲一個問題,你可以看看這個自定義功能,IsReallyNumeric

+0

當WONO ='。'時扼流圈 我會看看那個自定義函數。 – 2010-07-02 16:07:54

+0

是的,忘了那個。我檢查了IsReallyNumeric,並處理'。' – LittleBobbyTables 2010-07-02 16:11:32

+0

鏈接的功能就像一個魅力。接受你的答案,謝謝:) – 2010-07-02 16:11:42