필자는 SQL 쿼리를 수행하는 좋은 방법을 찾기 위해 where 문을 사용할 수있는 곳을 찾고있었습니다.이 문은 공백으로 남겨두면 전혀없는 것처럼 작동합니다. 나는 꽤 잘 작동하는 것 같다 어떤이를 발견했습니다 : 나는 @value에 값을 지정하면 내가 원하는처럼이 SQL 문은 왜 작동합니까?
WHERE (Column = @value OR @value is null)
, 검색이 필터링됩니다. 하지만 null을 전달하면 @value는 아무 것도 될 수 있다고 말하는 것과 같습니다. 나는 이것을 좋아한다. 이것은 좋다. 내가 이해하지 못하는 것은 왜 이것이 이같이 일하는가?
'@value is null'은 값이 'anything'이 아닙니다. 실제로는 @value가 아무것도 아니라고 말하고 있습니다. 이게 네가 원하는거야. @value는 아무 것도 아니거나 (아무것도 compmared 수 없습니다) 또는 뭔가가 - 다음 특정 @value 비교할 수 있습니다. 그런데 왜 그것은 실존주의 철학과 같은 것처럼 들렸습니까? : -} – DWright
@DWright 대단 했어 .--). null에 대한 논의는 어렵습니다. 특히 SQL null을 (다소) C#/Java 및 기타 명령형 (?) 언어의 null을 이해하기 쉽도록 비교할 때. 같은 이름, 다른 개념. – XIVSolutions
원하는 경우 같은 일을하는 또 다른 방법은 다음과 같습니다.'WHERE Column = ISNULL (@value, Column) ' – MarkD