Select max int from varchar column

前端 未结 9 1140
离开以前
离开以前 2021-02-19 04:07

I am trying to retrieve the largest number from a varchar column that includes both numbers and strings. An example of the data I\'m working with:

BoxNumber

9条回答
  •  有刺的猬
    2021-02-19 04:58

    you need a combination because of the fact that isnumeric returns 1 for the following things

    select isnumeric('+'),isnumeric('5d2') 
    

    your where clause would be like this

    WHERE VALUE NOT LIKE '%[a-z]%'
            AND ISNUMERIC(VALUE) = 1
    
    create table #bla (value varchar(50))
    insert #bla values('123')
    insert #bla values('a5')
    insert #bla values('789')
    insert #bla values('b1')
    
    SELECT MAX(CAST(value AS Int)) FROM #bla
    WHERE VALUE NOT LIKE '%[a-z]%'
        AND ISNUMERIC(VALUE) = 1
    

    I wrote about this here ISNUMERIC Trouble

提交回复
热议问题