从MS Access中的字母数字列中选取最大值

时间:2013-04-12 10:52:38

标签: sql ms-access max memo

我的表格中有一个数据类型为“备忘录”的列 该字段包含诸如“X003”,“X0022”,“X002”,“X0030”,“X0031”,“X004”之类的值。简而言之,第一个“X00”部分是常见的,其余部分是整数 我想通过sql查询选择包含第二部分中最大整数的行。我该怎么写sql?
如果它只是一个整数,我会在sql中使用“MAX()”来获得最大值。但它与此不同。我该怎么办? 请帮帮我。

3 个答案:

答案 0 :(得分:5)

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

即。选择第3个字符后的值的最大值,强制转换为数字(如果不可转换,则为0)。

答案 1 :(得分:0)

您可以在查询中执行简单的MID()以获取最后两个字符,然后将它们转换为整数,甚至直接在块上执行MAX()

答案 2 :(得分: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