--dynamic 쿼리가 몹시 귀찮은 경우
--다른 컬럼으로 index 를 타고, 필터조건만 처리 할 경우 유용한 쿼리 로직
if object_id ('tblx') is not null
drop table tblx
go
create table tblx
(idx int
,c1 int
,c2 int
)
go
insert into tblx values(1,1,null),(2,null,2),(3,3,3), (4, null,null)
-- @c1 의 값이 null 이면 필터하지 않고, 값이 있으면 값으로 뿌린다.
-- 보통 다음과 같은 쿼리를 짜는데, 이는 null 값에 문제를 일으킨다.
-- 아래 문제를 해결하는 것이 미션 1 이다.
declare @c1 int = null
select *
from tblx
where c1 = case when @c1 is null then c1 else @c1 end
go
-- 해결방안
숙제임 (iq 90)
-- @c1 의 값이 9999 이면 필터하지 않고, 값이 있으면 값으로 출력하며, null 이면 null 만 출력한다.
-- 이것이 미션 2 이다.
숙제임 (iq 100)