Please check this....
declare @level numeric(18)
declare @Child numeric(18)=26
set @level=(
CASE
WHEN @Child < 0 THEN 0
WHEN @Child BETWEEN 0 AND 5 THEN 1
WHEN @Child BETWEEN 5 AND 25 THEN 2
WHEN @Child BETWEEN 25 AND 125 THEN 3
WHEN @Child BETWEEN 125 AND 625 THEN 4
WHEN @Child BETWEEN 625 AND 3125 THEN 5
WHEN @Child BETWEEN 3125 AND 15625 THEN 6
WHEN @Child BETWEEN 15625 AND 78125 THEN 7
WHEN @Child BETWEEN 78125 AND 390625THEN 8
WHEN @Child BETWEEN 390625 AND 1953125 THEN 9
WHEN @Child BETWEEN 1953125 AND 9765625 THEN 10
END )
SELECT @level AS Level
SELECT @Child AS Child
1) your are checking @Child <5 THEN 0 and in second case your are checking @Child BETWEEN 0 AND 5 then 1 so your code always go for 0 if child is less then 5 it is not goen for second case for 1 it always return 0 for 0,1,2,3,4,5
2)remove "(" and ")" breakets from
BETWEEN