This article is a continuation of SQL Server CASE Statement and CASE WHEN Examples . Today we will learn about Nested Case Statement in SQL Server.
We can nest CASE statements similar to nested ifs that we find in most programming languages.
Let us see an example.

Image 7-Nested-Case
Limit of nesting a CASE function is up to 10 levels only.
In the following example, the limit of 10 is completely utilized.

Image 8-Nested-Case-Upto-10-Levels
If nesting is exceeding 10 levels, then SQL Server throws an error.
Case expressions may only be nested to level 10.
We can nest CASE statements similar to nested ifs that we find in most programming languages.
Let us see an example.
select ename, job, sal, case -- Outer Case
when ename like 'A%' then
case when sal >= 1500 then 'A' -- Nested Case
end
when ename like 'J%' then
case when sal >= 2900 then 'J' -- Nested Case
end
end as "Name-Grade"
From Emp
Image 7-Nested-Case
Limit of nesting a CASE function is up to 10 levels only.
In the following example, the limit of 10 is completely utilized.
Declare @x int
set @x = 1
Select
case when @x <= 100 then -- Level 1
case when @x <= 90 then -- Level 2
case when @x <= 80 then -- Level 3
case when @x <= 70 then -- Level 4
case when @x <= 60 then -- Level 5
case when @x <= 50 then -- Level 6
case when @x <= 40 then -- Level 7
case when @x <= 30 then --Level 8
case when @x <= 20 then--Level 9
case when @x<= 10 then--Level 10
100
End End End End End End End End End
End as "Nested Case"
--Ending all levels!
Image 8-Nested-Case-Upto-10-Levels
If nesting is exceeding 10 levels, then SQL Server throws an error.
Declare @x int
set @x = 1
Select
case when @x <= 100 then -- Level 1
case when @x <= 90 then -- Level 2
case when @x <= 80 then -- Level 3
case when @x <= 70 then -- Level 4
case when @x <= 60 then -- Level 5
case when @x <= 50 then -- Level 6
case when @x <= 40 then -- Level 7
case when @x <= 30 then --Level 8
case when @x <= 20 then--Level 9
case when @x<= 10 then--Level 10
case when @x <= 11 then -- 11
100
End End End End End End End End End End
End as "Nested Case"
Msg 125, Level 15, State 4, Line 14Case expressions may only be nested to level 10.
No comments:
Post a Comment