이 기능을 사용하여 SQL 저장 프로 시저에 where 절을 작성하려고합니다.향상된 where 절
if (@userId=0)
begin
SELECT * from tblUsers
end
else
begin
SELECT * from tblUsers
WHERE userId= @userId
end
내가 저장 프로 시저에 id(example:123)
를 보낼 때 나는 그것이 전체 데이터를 반환해야합니다 아이디로 "0"을 보낼 때, 나에게 특정 하나를 지참 하지만 다른 경우에는 사용하지 않는다. where 절을 향상시킬 수있는 무언가가 있어야합니다. 예를
SELECT * from tblUsers
WHERE (userId= @userId OR @userId = 0) and @userId = 123... bla bla
(또는 과정이 아닌)
어떤 도움
?
두 번째 코드 스 니펫이 허용되지 않는 이유는 무엇입니까? – shahkalpesh
두 번째 쿼리 ('및 @userId ...'비트 제외)는 원하는 것으로 보입니다. 그런데 일반적으로 자신의 센티널 값을 구성하는 것이 아니라 'NULL'을 사용하여 값이 없음을 나타내는 것이 좋습니다. 이것이 바로 그 이유입니다. –