SELECT Descr,COALESCE(Cnt,0) AS Cnt
FROM (SELECT '100 - 199' AS Descr,100 As StartVal,199 AS EndVal
UNION ALL
SELECT '200 - 299',200,299
UNION ALL
...
)t
OUTER APPLY (SELECT COUNT(*) AS Cnt
FROM Table
WHERE Val BETWEEN t.StartVal AND t.EndVal
)u
if you want ranges to persist create a table with those ranges and descriptions
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/