Maison > Article > base de données > Comment effectuer la déduplication des requêtes dans Oracle
Dans Oracle, vous pouvez utiliser l'instruction SELECT et le mot-clé DISTINCT pour réaliser la déduplication des requêtes, filtrer les lignes en double dans l'ensemble de résultats de la requête et garantir que la valeur de la ou des colonnes spécifiées renvoyées après l'opération de requête est unique dans la syntaxe ; est "SELECT DISTINCT nom du champ FROM nom de la table de données ;".
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.
Dans Oracle, vous pouvez utiliser l'instruction SELECT et le mot-clé DISTINCT pour réaliser la déduplication des requêtes.
Utilisez la clause DISTINCT
dans l'instruction SELECT
pour filtrer les lignes en double dans l'ensemble de résultats. Il garantit que les valeurs renvoyées dans la ou les colonnes spécifiées dans la clause SELECT
sont uniques. SELECT
语句中使用DISTINCT
子句来过滤结果集中的重复行。它确保在SELECT
子句中返回指定的一列或多列的值是唯一的。
以下说明了SELECT DISTINCT
语句的语法:
SELECT DISTINCT column_name FROM table_name;
在上面语法中,table_name
表的column_name
列中的值将进行比较以过滤重复项。
要根据多列检索唯一数据,只需要在SELECT
子句中指定列的列表,如下所示:
SELECT DISTINCT column_1, column_2, ... FROM table_name;
在此语法中,column_1
,column_2
和column_n
中的值的组合用于确定数据的唯一性。
DISTINCT
子句只能在SELECT
语句中使用。
请注意,DISTINCT
不是SQL标准的UNIQUE
的同义词。总是使用DISTINCT
而不使用UNIQUE
是一个好的习惯。
下面来看看如何使用SELECT DISTINCT
来看看它是如何工作的一些例子。
查看示例数据库中的联系人(contacts
)表:
以下示例检索所有联系人的名字:
SELECT first_name FROM contacts ORDER BY first_name;
执行上面查询语句,得到以下结果 -
该查询返回了319
行,表示联系人(contacts
)表有319
行。
要获得唯一的联系人名字,可以将DISTINCT
关键字添加到上面的SELECT
语句中,如下所示:
SELECT DISTINCT first_name FROM contacts ORDER BY first_name;
执行上面查询语句,得到以下结果 -
该查询返回了302
行,表示联系人(contacts
)表有17
行是重复的,它们已经被过滤了。
看下面的order_items
表,表的结构如下:
以下语句从order_items
表中选择不同的产品ID和数量:
SELECT DISTINCT product_id, quantity FROM ORDER_ITEMS ORDER BY product_id;
执行上面查询语句,得到以下结果 -
在此示例中,product_id
和quantity
列的值都用于评估结果集中行的唯一性。
DISTINCT
将NULL
值视为重复值。如果使用SELECT DISTINCT
语句从具有多个NULL
值的列中查询数据,则结果集只包含一个NULL
值。
请参阅示例数据库中的locations
表,结构如下所示 -
以下语句从state
列中检索具有多个NULL
值的数据:
SELECT DISTINCT state FROM locations ORDER BY state NULLS FIRST;
执行上面示例代码,得到以下结果 -
正如上图所看到的,只返回一个NULL
La syntaxe de l'instruction SELECT DISTINCT
est expliquée ci-dessous :
Dans la syntaxe ci-dessus, les valeurs de la colonne column_name
de la table_name sera Compare pour filtrer les doublons. <a href="https://www.php.cn/course/list/52.html" target="_blank"></a>Pour récupérer des données uniques basées sur plusieurs colonnes, spécifiez simplement la liste des colonnes dans la clause <code>SELECT
comme suit :
column_1
, La combinaison de les valeurs dans column_2
et column_n
sont utilisées pour déterminer le caractère unique des données. 🎜🎜La clause DISTINCT
ne peut être utilisée que dans l'instruction SELECT
. 🎜🎜Veuillez noter que DISTINCT
n'est pas synonyme du standard SQL UNIQUE
. C'est une bonne pratique de toujours utiliser DISTINCT
au lieu de UNIQUE
. 🎜SELECT DISTINCT
pour voir comment cela fonctionne. 🎜contacts
) : 🎜🎜🎜 🎜 L'exemple suivant récupère les noms de tous les contacts : 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants : 🎜🎜🎜🎜Cette requête a renvoyé la ligne 319
, indiquant que le contact (contacts
) la table contient la ligne 319
. 🎜🎜Pour obtenir le nom unique du contact, vous pouvez ajouter le mot-clé DISTINCT
à l'instruction SELECT
ci-dessus, comme indiqué ci-dessous : 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez le résultats suivants-🎜🎜 🎜🎜Cette requête a renvoyé 302
lignes, indiquant que 17
lignes dans la table Contacts (contacts
) sont des doublons et qu'elles ont été filtrées. 🎜order_items
ci-dessous. le tableau est le suivant : 🎜 🎜🎜🎜Les instructions suivantes Sélectionnez différents ID de produit et quantités dans la table order_items
: 🎜rrreee🎜Exécutez l'instruction de requête ci-dessus et obtenez les résultats suivants -🎜🎜🎜🎜Dans cet exemple, product_id
et quantité
Les valeurs de la colonne code> sont utilisées pour évaluer le caractère unique des lignes dans l'ensemble de résultats. 🎜DISTINCT
traite les valeurs NULL
comme valeur en double. Si vous utilisez l'instruction SELECT DISTINCT
pour interroger les données d'une colonne comportant plusieurs valeurs NULL
, le jeu de résultats ne contient qu'une seule valeur NULL
. 🎜🎜Veuillez vous référer au tableau emplacements
dans la base de données exemple, la structure est la suivante-🎜🎜🎜🎜L'instruction suivante récupère les données avec plusieurs valeurs NULL
à partir de l'état Colonne:🎜rrreee🎜Exécutez l'exemple de code ci-dessus et obtenez les résultats suivants-🎜🎜<img src="https://img.php.cn/upload/image/501/920/826/164741987164811Comment%20effectuer%20la%20d%C3%A9duplication%20des%20requ%C3%AAtes%20dans%20Oracle" title="164741987164811Comment effectuer la déduplication des requêtes dans Oracle " alt="Comment effectuer la déduplication des requêtes dans Oracle">🎜🎜Comme vous pouvez le voir dans l'image ci-dessus, seule une valeur <code>NULL
est renvoyée. 🎜🎜🎜Tutoriel recommandé : "🎜Tutoriel Oracle🎜"🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!