• For only 5 chars, I wouldn't bother will all the CTEs and related folderol.

    Why not just:

    SELECT

    ISNULL(CAST(ASCII(SUBSTRING(data, 1, 1)) AS varchar(3)), '') +

    ISNULL(CAST(ASCII(SUBSTRING(data, 2, 1)) AS varchar(3)), '') +

    ISNULL(CAST(ASCII(SUBSTRING(data, 3, 1)) AS varchar(3)), '') +

    ISNULL(CAST(ASCII(SUBSTRING(data, 4, 1)) AS varchar(3)), '') +

    ISNULL(CAST(ASCII(SUBSTRING(data, 5, 1)) AS varchar(3)), '')

    FROM (

    SELECT '02yC' AS data UNION ALL

    SELECT '12G8' UNION ALL

    SELECT '9Pp1' UNION ALL

    SELECT '7@uL' UNION ALL

    SELECT '' UNION ALL

    SELECT 'a' UNION ALL

    SELECT 'b2' UNION ALL

    SELECT 'c34' UNION ALL

    SELECT 'd456' UNION ALL

    SELECT 'e5678'

    ) AS test_data

    SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".