• Interesting.

    You could also do something like this:

    WITH CTE AS

    (

    SELECT

    1 AS number

    UNION ALL

    SELECT

    X.number + 1 AS number

    FROM

    CTE X

    WHERE

    X.number + 1 <= 100

    )

    SELECT

    REPLICATE ('|', X.number) + REPLICATE ('.', 100 - X.number) AS progress_bar

    ,CONVERT (VARCHAR (11), X.number) + '%' AS progress_pct

    FROM

    CTE X