나는 아주 간단해야 ISNULL 내가 생각했던 일을하지 않는 뭔가를하려고합니다.NULL 데이터베이스 필드와 ISNULL 사용
기본적으로 저장 프로 시저가 있고 PARAM1 또는 PARAM2가 내 테이블에서 일치하는 값을 가질 것으로 예상됩니다.
SELECT * FROM MyTable WITH (NOLOCK)
WHERE
field1 = ISNULL(@PARAM1 ,field1)
AND
field2 = @PARAM2
내 행에 NULL 필드가있을 때까지 제대로 작동하지만 그 결과는 제외됩니다. 이 문제를 해결할 수있는 다른 방법이 있습니까?
아니요 영업 이익에 통과 중'@ PARAM1' 또는'@ PARAM2'하고이 매개 변수를하고자하는'NULL' 효과적으로'무 OP' 수 없습니다. 'PARAM1 ='을 수행하는 행위가 아니라면 그 컬럼이 NULL 인 행을 제외시킬 것입니다. –
매개 변수 1 또는 2는 null 일 수 있습니다. 나는 오직 내가 관심있는 param을 전달하고 다른 것은 null로 설정된다. – Andrew
Martin, 그것이 내가 말했던 것이다. 열 값이 NULL 인 경우 ("내 행에 NULL 필드가있을 때까지"라고 말함) @ PARAM1 (NULL이 아님)은이 열과 일치하지 않습니다. 따라서 그는 열 값에 ISNULL을 사용하거나 Param1이 NULL인지 확인해야합니다. – Ryan