오라클 마이너스 사용법
“마이너스”는 중국어로 직역하면 “뺄셈”으로 오라클에서도 뺄셈 연산에 사용되는데, 전통적인 의미의 숫자 뺄셈은 아니지만, 쿼리 결과 집합을 뺍니다. A 빼기 B는 결과 세트 A에서 결과 세트 B에 포함된 모든 레코드, 즉 A에는 존재하지만 B에는 존재하지 않는 레코드를 모두 제거한 결과를 의미합니다. 알고리즘은 Java의 Collection의 RemoveAll()과 유사합니다. 즉, A 빼기 B는 A와 B의 교차점만 제거합니다. B에는 존재하지만 A에는 없는 레코드에 대해서는 아무 작업도 수행되지 않으며 예외도 발생하지 않습니다. 던져졌다.
Oracle의 마이너스는 열별로 비교되므로 A에서 마이너스 B로의 전제 조건은 결과 집합 A와 결과 집합 B가 동일한 수의 열을 가져야 하고, 동일한 열 인덱스를 가진 열은 동일해야 한다는 것입니다. 데이터 유형 . 또한 Oracle은 마이너스 이후 결과 집합을 중복 제거합니다. 즉, 원래 A에 동일한 레코드가 여러 개 있는 경우 A 마이너스 B 이후에는 해당 레코드 하나만 남게 됩니다. 자세한 내용은 다음 예를 참조하세요.
마이너스의 실제 적용 예를 살펴보겠습니다. 다음과 같은 레코드 데이터가 있는 t_user 사용자 테이블이 있다고 가정합니다.
다음: 🎜 >
(1) "select id from t_user where id<6 빼기 select id from t_user where id between 3 and 7"의 결과는 다음과 같습니다: (2) "select age,level_no from t_user where id<8 빼기 select age,level_no from t_user where level=3"의 결과는 다음과 같습니다. 이러한 결과를 보면 , 어쩌면 조금 이상하다고 생각할 수도 있는데, 왜 그럴까요? 그것을 분석해 봅시다. 먼저, "id<8인 t_user에서 age,level_no 선택"의 결과는 다음과 같습니다. 그런 다음, "level=3인 t_user에서 age,level_no를 선택합니다. " 결과는 다음과 같습니다. A에서 B를 뺀 직후의 결과는 다음과 같습니다. 이때 결과 집합에 중복된 기록이 있는 것을 확인할 수 있으며, 중복 제거 후 위와 같은 실제 결과가 얻어집니다. 사실 마이너스의 기능은 A에는 존재하지만 B에는 없는 레코드를 찾는 것이기 때문에 이해하기 쉽습니다. 위의 예는 모두 단일 테이블에 대한 것입니다. 단일 테이블 작업에 마이너스를 사용하면 일반적으로 테이블 A의 특정 필드가 테이블 B에 존재하지 않는다는 것을 알아내는 데 사용됩니다. 기록된 상황에 대응합니다. 예를 들어, t_user 테이블과 동일한 테이블 구조를 가진 또 다른 테이블 t_user2가 있다고 가정해 보겠습니다. 그러면 다음 명령문은 t_user 테이블에 존재하지만 id를 제외하고 t_user2 테이블에는 존재하지 않는 레코드를 찾을 수 있습니다.select no,name,age,level_no from t_user minus select no,name,age,level_no from t_user2;읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다! 오라클 마이너스 사용법과 적용 예에 대한 자세한 설명은 PHP 중국어 홈페이지를 참고해주세요!