procedure를 만드는데요..
exec sp_Test ?,?,?,?,?
이런식으로 실행이 될 프로시저 입니다.
create procedure sp_Test @test1 varchar(1), @test2 varchar(1), @test3 varchar(8), @test4 varchar(8), @test5 varchar(50)
as
...
이렇게 생성을 할때요..
@test1, @test2 등의 파라미터에 따라 where절을 만들려고 합니다..
앞부분에서 쿼리를 만들어서 #temp1이라는 템프테이블에 데이타를 저장하구요...
@test1에 값이 있으면
select * #temp1 where column1 = @test1을
또 @test2에 대해서도 값이 있으면 조건절에 덧붙이고 이런식의 쿼리를 할려고 합니다..
문제는... @test1, @test2, @test3.. 의 값들이 있을수도 있고, 없을수도 잇는데 없으면 전부를 있으면 그 값만을 가져올려고 하는거지요..
생각하기로는... 있는 값들에 대해서..조건절만 우선 만들고
select * from #temp1 문장에
뒤에 where절을 통째로 붙이는게 제일 좋을거같은데..
이게 잘 안 됩니다...
그러니깐...
strWhere = 'where column1 = @test1 and column3 = @test3 and column4 = test4' 이런식으로 만들고
select * from #temp1 + strWhere 이런식으로요..
위의 조건절은 @test1, @test3, @test4의 값들이 ''이 아닌 경우에 해당하겠지요....
조언 부탁드립니다...
|