Utilisation d'Oracle moins
« Moins » est directement traduit en chinois par « soustraction ». Il est également utilisé pour les opérations de soustraction dans Oracle, mais ce n'est pas la soustraction de nombres au sens traditionnel, mais Est la soustraction du jeu de résultats de la requête. A moins B signifie le résultat de la suppression de tous les enregistrements contenus dans le jeu de résultats B du jeu de résultats A, c'est-à-dire les enregistrements qui existent dans A mais n'existent pas dans B. L'algorithme est similaire à RemoveAll() de Collection en Java, c'est-à-dire que A moins B supprimera uniquement l'intersection de A et B. Aucune opération ne sera effectuée sur les enregistrements qui existent dans B mais pas dans A, et aucune exception ne sera effectuée. jeté.
Le moins d'Oracle est comparé par colonne, donc la condition préalable pour A à moins B est que l'ensemble de résultats A et l'ensemble de résultats B doivent avoir le même nombre de colonnes, et les colonnes avec le même index de colonne ont le même type de données. De plus, Oracle dédupliquera l'ensemble de résultats après moins. Autrement dit, s'il existe à l'origine plusieurs enregistrements identiques dans A, un seul enregistrement correspondant restera après A moins B. Pour plus de détails, veuillez consulter l'exemple ci-dessous.
Regardons un exemple d'application pratique de moins. Supposons que nous ayons une table utilisateur t_user, qui contient les données d'enregistrement suivantes :
Ensuite :
(1) Le résultat de "sélectionnez l'identifiant de t_user où id<6 moins sélectionnez l'identifiant de t_user où id entre 3 et 7" sera :
(2) Le résultat de "select age,level_no from t_user Where id<8 moins select age,level_no from t_user Where level=3" est :
Voir un tel résultat , peut-être que vous vous sentez un peu étrange, pourquoi ? Analysons-le. Tout d'abord, le résultat de « select age,level_no from t_user Where id<8 » sera comme ceci :
Ensuite, « select age,level_no from t_user Where Level=3 " Le résultat sera comme ceci :
Puis, directement après A moins B, le résultat devrait être :
À ce stade, nous pouvons voir qu'il y a des enregistrements en double dans l'ensemble de résultats, et après déduplication, les résultats réels ci-dessus sont obtenus. En fait, c’est facile à comprendre, car la fonction de moins est de trouver les enregistrements qui existent en A mais pas en B.
Les exemples ci-dessus concernent tous une seule table. Évidemment, il n'y a aucun avantage à utiliser moins pour effectuer des opérations sur une seule table. Il est généralement utilisé pour découvrir que certains champs de la table A n'existent pas dans la table B. . Correspondant à la situation enregistrée. Par exemple, nous avons une autre table t_user2, qui a la même structure de table que la table t_user. Ensuite, l'instruction suivante peut rechercher les enregistrements qui existent dans la table t_user mais qui n'existent pas dans la table t_user2, à l'exception de l'identifiant.
select no,name,age,level_no from t_user minus select no,name,age,level_no from t_user2;
Merci d'avoir lu, j'espère que cela pourra vous aider, merci pour votre soutien à ce site !
Pour des explications plus détaillées sur l'utilisation d'Oracle minus et des exemples d'application, veuillez faire attention au site Web PHP chinois !