2013-04-12 42 views
1

我有一個表格,其中包含數據類型爲'Memo'的列。
該字段包含「X003」,「X0022」,「X002」,「X0030」,「X0031」,「X004」等值。總之,第一個「X00」部分是常見的,其餘部分是整數。
我想通過sql查詢選擇包含第二部分中最大整數的行。我應該如何編寫sql?
如果它只是一個整數,我會在sql中使用「MAX()」來獲得最大值。但它不同於此。我該怎麼辦? 請幫幫我。從MS Access中的字母數字列中挑選最大值

回答

5
SELECT max(val(mid([col],3))) FROM thetable; 

即,選擇第三個字符後的最大值,轉換爲數字(如果不可轉換,則爲0)。

+0

還有一個問題:如果表中沒有記錄,它會返回0嗎? –

0

您可以在查詢中執行一個簡單的MID()以獲取最後兩個字符,然後將它們轉換爲整數,甚至直接在該塊上執行MAX()

+0

是否在訪問'SUBSTRING()'工作? –

+0

我的不好。它沒有。看起來我正在用太多的語言工作。 :) – dotNET

0
How should i write the sql? 

如果您正在尋找sql查詢

SELECT 
    MAX(CONVERT(INT,CASE WHEN PatIndex('%[a-z]%',REVERSE(memo)) > 0 
     THEN RIGHT(memo,PatIndex('%[a-z]%',REVERSE(memo))-1) 
     ELSE NULL END)) AS maxmemo 
FROM Table1 
+0

...並且SQL語句在Access中工作? –

相關問題