• You are trying to order the varchar column and not numeric though the value looks numeric.

    Try

    --Query 1

    select

    price

    from table

    order by CAST(price as numeric(10,4)) asc

    --Query 2

    select price from (

    select CAST(price as numeric(10,4))

    price

    from table) T

    order by price asc

    Again this is just hint. Your cast function should have appropriate precision and scale based on previous post