select 最大值=max(right(字段名,1)) from table

解决方案 »

  1.   

    MAX
    返回表达式的最大值。语法
    MAX ( [ ALL | DISTINCT ] expression )参数
    ALL对所有的值进行聚合函数运算。ALL 是默认设置。DISTINCT指定每个唯一值都被考虑。DISTINCT 对于 MAX 无意义,使用它仅仅是为了符合 SQL-92 兼容性。expression常量、列名、函数以及算术运算符、按位运算符和字符串运算符的任意组合。MAX 可用于数字列、字符列和 datetime 列,但不能用于 bit 列。不允许使用聚合函数和子查询。返回类型
    返回类型与 expression 相同。重要  当使用 CUBE 或 ROLLUP 时,不支持区分聚合,例如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用,则 Microsoft® SQL Server™ 将返回错误信息并取消查询。
    注释
    MAX 忽略任何空值。对于字符列,MAX 查找排序序列的最大值。
      

  2.   

    RIGHT
    返回字符串中从右边开始指定个数的 integer_expression 字符。语法
    RIGHT ( character_expression , integer_expression ) 参数
    character_expression由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。integer_expression是起始位置,用正整数表示。如果 integer_expression 是负数,则返回一个错误。返回类型
    varcharcharacter_expression 必须为可隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。注释
    兼容级别可能影响返回值。有关更多信息,请参见 sp_dbcmptlevel。示例
    下例返回每个作者名字中最右边的五个字符。USE pubs
    GO
    SELECT RIGHT(au_fname, 5) 
    FROM authors
    ORDER BY au_fname
    GO下面是结果集:------------------
    raham 
    Akiko 
    lbert 
    Ann   
    Anne  
    Burt  
    rlene 
    heryl 
    Dean  
    Dirk  
    ather 
    Innes 
    hnson 
    Livia 
    jorie 
    ander 
    chael 
    ichel 
    gstar 
    inald 
    heryl 
    earns 
    ylvia 
    (23 row(s) affected)
      

  3.   

    设字段名为c,表名为t
    select 最大值=max(right(c,charindex('_',reverse(c),1)-1)) from t
      

  4.   

    刚才的写错了,没有转成数字来比较。改一下:设字段名为c,表名为t
    select 最大值=max(cast(right(c,charindex('_',reverse(c),1)-1) as int)) from t注,一楼的答案没有考虑10以上的数。
      

  5.   

    select max(aa) from 表 where len(aa)=(select max(len(aa)) from 表)
      

  6.   

    --下面是测试--测试数据
    declare @t table(aa varchar(10))
    insert into @t
    select aa='1_1'
    union all select '1_2'
    union all select '1_1_1'
    union all select '1_12_2'
    union all select '1_2_1'--查询
    select max(aa) from @t where len(aa)=(select max(len(aa)) from @t)/*--结果
               
    ---------- 
    1_12_2(所影响的行数为 1 行)
    --*/