SQL Server 2008 데이터베이스의 테이블에 대해 쿼리를 실행하려고합니다. 5 개의 int 매개 변수를 사용하는 저장 프로 시저가 있습니다. 현재 내 매개 변수는 다음과 같이 정의됩니다.SQL Server 2008의 조건부 WHERE 절
@memberType int,
@color int,
@preference int,
@groupNumber int,
@departmentNumber int
이 절차는 각 매개 변수에 대해 -1 이상이 전달됩니다. -1 값은 WHERE 절이 조인/절에서 해당 매개 변수를 고려하지 않아야 함을 의미합니다. 매개 변수의 값이 -1보다 크면 WHERE 절의 값을 고려해야합니다. IF-ELSE 문을 사용하지 않는 편이 좋을 것입니다.
이 질문은 here입니다. 그러나, 그것은 나를 위해 작동하지 않았다. 왜 내 테이블의 각 열에 NULL 값을 가질 수 있기 때문에 그 이유가 있다고 생각합니다. 누군가 다섯 번째 대답에서이 시나리오를 지적했습니다. 그것은 저에게 일어나는 것처럼 보입니다.
내 질문에 매끄러운 접근법이 있습니까? 아니면 그냥 (내가하지 희망 :()를 무력해야합니까
감사합니다
'COALESCE' (NULL의 경우)를 사용하는 것보다 빠릅니다. – crush