• You can use a tally for this pretty easily.

    Here is the code to create a tally table view. This is super fast!!!

    create View [dbo].[Tally] as

    WITH

    E1(N) AS (select 1 from (values (1),(1),(1),(1),(1),(1),(1),(1),(1),(1))dt(n)),

    E2(N) AS (SELECT 1 FROM E1 a, E1 b), --10E+2 or 100 rows

    E4(N) AS (SELECT 1 FROM E2 a, E2 b), --10E+4 or 10,000 rows max

    cteTally(N) AS

    (

    SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) FROM E4

    )

    select N from cteTally

    GO

    Now we just need to create your query. Please note that I used a cte here because we didn't have a table of data to work with.

    with MyData (MyValue, Target) as

    (

    select 1.0, 5 union all

    select 5, 5 union all

    select 5.75, 5 union all

    select 8, 10 union all

    select 11, 15 union all

    select 86.5, 90

    )

    select *

    from MyData d

    cross apply

    (

    select top 1 * from Tally

    where N >= d.MyValue

    and N % 5 = 0

    order by N

    ) x

    --EDIT--

    You can read more about tally tables here. http://www.sqlservercentral.com/articles/62867/[/url]

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/