• They are sorted, they're just sorted as strings which is what the column is by the point the order by is evaluated. Perhaps something like this:

    Select CAST(CAST(BaseColumn*100 AS numeric(10,2)) AS varchar(5)) + '%' as MyColumn FROM

    (

    SELECT 0.10 as BaseColumn

    Union

    SELECT 0.011 as BaseColumn

    Union

    SELECT 0.02 as BaseColumn

    Union

    SELECT 0.12 as BaseColumn

    ) MyTable

    Order by BaseColumn asc

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass