Comparaisons à valeurs multiples (ARRAY)
Les colonnes stockées dans l’index de contenu peuvent avoir plusieurs valeurs, et ces colonnes à valeurs multiples peuvent être comparées à l’aide du prédicat de comparaison ARRAY.
Le prédicat de comparaison ARRAY a la syntaxe suivante :
...WHERE <column> <comp_op> [<quantifier>] <comparison_list>
...WHERE <column> <comp_op> <value>
Une erreur est retournée si la référence de colonne n’est pas une colonne à valeurs multiples. Le type de données de colonne doit être compatible avec les éléments de la liste de comparaison. Si nécessaire, la référence de colonne peut être convertie en un autre type de données.
L’opérateur de comparaison (comp_op) peut être l’un des opérateurs de comparaison normaux. Dans une comparaison à plusieurs valeurs, les opérateurs de comparaison ont des significations légèrement différentes selon qu’un quantificateur est utilisé ou non. Les quantificateurs déterminent si une comparaison doit être effectuée par rapport à l’ensemble ou à une partie des valeurs de la liste de comparaison. Les fonctions des opérateurs de comparaison sont fournies dans les tables décrivant chaque quantificateur (ALL et SOME) plus loin dans ce document.
La valeur après l’opérateur spécifie une valeur littérale unique qui est comparée à tous les éléments de la colonne à valeurs multiples. Si un élément correspond à la valeur, le prédicat est true.
La liste de comparaison spécifie un tableau de valeurs littérales qui sont comparées à la colonne à valeurs multiples. La syntaxe de la liste de comparaison est la suivante :
ARRAY '['<literal> [,<literal>]']'
Important
Tenez compte de la syntaxe de liste de comparaison. Le groupe de littéraux qui composent la liste de comparaison doit être entouré de crochets. Ne pas entourer d’éléments individuels de la liste de comparaison par des crochets. Par conséquent, ARRAY [1] et ARRAY [1,2,3] sont valides, mais ARRAY [1[,2][,3]] ne l’est pas.
La méthode utilisée pour déterminer si la comparaison à valeurs multiples retourne true ou false est spécifiée par le quantificateur facultatif. Les sections suivantes décrivent chaque quantificateur et le fonctionnement de chaque opérateur de comparaison lorsque le quantificateur est utilisé.
Quantificateur absent
Si aucun quantificateur n’est spécifié, chaque élément situé à gauche de la comparaison est comparé à l’élément dans la même position sur le côté droit. La comparaison commence par le premier élément des tableaux et progresse dans le dernier élément. Si tous les éléments du côté gauche sont équivalents aux éléments correspondants du côté droit, le nombre d’éléments de tableau est utilisé pour déterminer le tableau le plus grand.
Le tableau suivant montre l’opération des opérateurs de comparaison lorsqu’aucun quantificateur n’est spécifié et fournit une brève description de chacun d’eux.
Opérateur | Description |
---|---|
= | 'Equal to' retourne true lorsque chaque élément de gauche a la même valeur que l’élément de droite correspondant, et que les deux tableaux ont le même nombre d’éléments. |
!= ou <> | « Différent de » retourne true lorsqu’un ou plusieurs éléments de gauche ont des valeurs différentes des éléments de droite correspondants, ou lorsque les tableaux de gauche et de droite n’ont pas le même nombre d’éléments. |
> | 'Supérieur à' retourne true lorsque la valeur de chaque élément de gauche est supérieure à la valeur de l’élément de droite correspondant. Si toutes les valeurs d’élément de gauche correspondent exactement aux éléments de droite correspondants et que le tableau de gauche contient plus d’éléments que le tableau de droite, « supérieur à » renvoie true. |
>= | « Supérieur ou égal à » retourne true lorsque la valeur de chaque élément de gauche est supérieure ou égale à la valeur de l’élément de droite correspondant. Si toutes les valeurs d’élément de gauche sont égales ou supérieures aux éléments de droite correspondants et que le tableau de gauche a le même ou plus d’éléments que le tableau de droite, « supérieur à » renvoie true. |
< | 'Inférieur à' retourne true lorsque la valeur de chaque élément de gauche est inférieure à la valeur de l’élément de droite correspondant. 'Inférieur à' renvoie également true lorsque le côté gauche a moins d’éléments que le côté droit. |
<= | « Inférieur ou égal à » retourne true lorsque la valeur de chaque élément de gauche est inférieure ou égale à la valeur de l’élément de droite correspondant. Si toutes les valeurs d’élément de gauche sont égales ou inférieures aux éléments de droite correspondants et que le tableau de gauche a le même ou moins d’éléments que le tableau de droite, « supérieur à » renvoie true. |
ALL Quantificateur
Le quantificateur ALL spécifie que chaque élément du côté gauche est comparé à chaque élément du côté droit. Pour retourner true, la comparaison doit être true pour chaque élément du côté gauche par rapport à chaque élément du côté droit. Le nombre d’éléments dans les tableaux de gauche et de droite n’a aucun effet sur le résultat.
Le tableau suivant montre comment chaque opérateur de comparaison fonctionne avec le quantificateur ALL.
Opérateur | Description |
---|---|
= | 'Equal to' retourne true lorsque chaque valeur d’élément de gauche est identique à chaque valeur d’élément de droite. |
!= ou <> | 'Not equal to' retourne true quand au moins une des valeurs d’élément de gauche est différente de l’une des valeurs d’élément de droite. |
> | 'Supérieur à' retourne true lorsque chaque valeur d’élément de gauche est supérieure à chaque valeur d’élément de droite. |
>= | « Supérieur ou égal à » retourne true lorsque chaque valeur d’élément de gauche est supérieure ou égale à chaque valeur d’élément de droite. |
< | 'Inférieur à' renvoie true lorsque chaque valeur d’élément de gauche est inférieure à chaque valeur d’élément de droite. |
<= | « Inférieur ou égal à » retourne true lorsque chaque valeur d’élément de gauche est inférieure ou égale à chaque valeur d’élément de droite. |
SOME (ou ANY) Quantificateur
Les quantificateurs SOME et ANY peuvent être utilisés indifféremment. Comme le quantificateur ALL, le quantificateur SOME spécifie que chaque élément du côté gauche est comparé à chaque élément du côté droit. Pour retourner true, la comparaison doit avoir la valeur true pour au moins un des éléments du côté gauche par rapport à n’importe quel élément du côté droit. Le nombre d’éléments sur les tableaux de gauche et de droite n’a aucun effet sur le résultat.
Le tableau suivant montre comment chaque opérateur de comparaison fonctionne avec le quantificateur SOME.
Opérateur | Description |
---|---|
= | « Égal à » retourne true quand au moins l’une des valeurs d’élément de gauche est identique à l’une des valeurs d’élément de droite. |
!= ou <> | 'Not equal to' renvoie true quand aucune des valeurs d’élément de gauche n’est identique à l’une des valeurs d’élément de droite. |
> | 'Supérieur à' renvoie true quand au moins l’une des valeurs d’élément de gauche est supérieure à l’une des valeurs d’élément de droite. |
>= | « Supérieur ou égal à » retourne true quand au moins une des valeurs d’élément de gauche est supérieure ou égale à l’une des valeurs d’élément de droite. |
< | 'Inférieur à' renvoie true quand au moins l’une des valeurs d’élément de gauche est inférieure à l’une des valeurs d’élément de droite. |
<= | « Inférieur ou égal à » retourne true quand au moins une des valeurs d’élément de gauche est inférieure ou égale à l’une des valeurs d’élément de droite. |
Exemples
L’exemple suivant vérifie si les documents se trouvent dans les catégories « Finance » ou « Planning » :
SELECT System.ItemUrl FROM SystemIndex WHERE System.Category =
SOME ARRAY['Finance','Planning']
Les comparaisons suivantes ont toutes la valeur true. N’oubliez pas que dans l’utilisation réelle, la syntaxe de requête de recherche nécessite que le côté gauche soit une propriété, et non une valeur littérale.
ARRAY [1,2] > ARRAY [1,1]
ARRAY [1,2] > ARRAY [1,1,2]
ARRAY [1,2] < ARRAY [1,2,3]
ARRAY [1,2] = SOME ARRAY [1,12,27,35,2]
ARRAY [1,1] != ALL ARRAY [1,2]
ARRAY [1,20,21,22] < SOME ARRAY [0,40]
ARRAY [1,20,21,22] < ANY ARRAY [0,40]
Rubriques connexes
-
Informations de référence
-
Conceptuel