有一数据表为table1,字段为name name    123
12344
Asadsasdsa求table哪条记录的name的字符串最长?  并且长度是多少?

解决方案 »

  1.   

    select max(len(nanme)) from table1
      

  2.   

    select name, len(name) from table1 where len(name) = (select max(len(name)) from table1)
      

  3.   

    CREATE TABLE T3(nanme NVARCHAR(30))
    INSERT T3
    SELECT 'LONG' UNION ALL
    SELECT 'SHORT' UNION ALL
    SELECT 'LONGEST' UNION ALL
    SELECT '@MeToo@'SELECT nanme,LEN(nanme) [length]
    FROM T3 A 
    WHERE NOT EXISTS
    (
    SELECT 1 FROM T3 B 
    WHERE LEN(B.nanme)>LEN(A.nanme)
    )nanme                          length
    ------------------------------ -----------
    LONGEST                        7
    @MeToo@                        7(2 行受影响)
      

  4.   


    select top 1 len(col) from tb order by len(col) desc
      

  5.   

    掉了名字
    1.select name, len(name) from table1 where len(name) = (select max(len(name)) from table1)
    2.Select name len(name) from table1 a where not exists(select 1 from table1 where len(nanme)>len(a.nanme) )
      

  6.   

    select top 1  *,len(name) from tb order by len(name) desc
      

  7.   

    declare @t table(col varchar(100))
    insert @t select '123' 
    insert @t select '12344' 
    insert @t select 'Asadsasdsa' select top 1 *
    from
    (
    select len(col) as 'len',col from @t
    )a
    order by [len] desc/*(1 行受影响)(1 行受影响)(1 行受影响)
    len         col
    ----------- -------------
    10          Asadsasdsa(1 行受影响)*/
      

  8.   

    declare @t table(col varchar(100)) 
    insert @t select '123' 
    insert @t select '12344' 
    insert @t select 'Asadsasdsa' select top 1 * 
    from 

    select len(col) as 'len',col from @t 
    )a 
    order by [len] desc /* (1 行受影响) (1 行受影响) (1 行受影响) 
    len        col 
    ----------- ------------- 
    10          Asadsasdsa (1 行受影响) */
      

  9.   

    select [name],len([name]) from [table] where len([name])=(select max(len([name]))from [table] )