나는 간단한 쿼리를 (실제 쿼리는 더 복잡 할 것이다. 그것은 동적 쿼리입니다)모든 데이터베이스에 대해 SQL LIKE NULL 구문이 유효합니까?
SELECT * FROM Employee WHERE @firstName IS NULL OR firstName LIKE @firstName
@firstName이 전달됩니다
- 로 NULL
- '% 이름 %'
@firstName을 '% name %'(으)로 전달한 경우. 쿼리가 제대로 작동합니다.
@firstName이 NULL로 전달 된 경우. 쿼리는 것
SELECT * FROM Employee WHERE NULL IS NULL OR firstName LIKE NULL
// This query is valid syntax on MSSQL and return all employees
// because NULL IS NULL evaluated as TRUE
// And firstName LIKE NULL evaluated as FALSE -- I guess
내 질문이
모든 SQL 데이터베이스에 유효한 firstName을 LIKE NULL이다?
그리고 항상 FALSE로 평가됩니까?
이 같은 구문 https://www.w3schools.com/SQl/sql_like.asp
이 https://msdn.microsoft.com/en-us/library/ms179859.aspx
을 확인했다하지만 내 대답을 찾지 못했습니다. 감사!
답변 해 주셔서 감사합니다. Upvoted! – Loc
Mssql, MySQL, PostgreSQL, SQLite에서 LIKE NULL을 테스트했습니다. 그들은 잘 작동했다. 그러나 Oracle 데이터베이스에서는 실패했습니다. – Loc
* 어떻게 실패 했습니까? 오라클 11.2에서는 제게 잘 작동합니다. 그리고 나는 오라클 버전이이를 제대로 처리하지 못할 것이라고 실제로 생각합니다. 그것은 심각한 버그 일 것입니다. –