Référence SQL pour les expressions de requête utilisées dans ArcGIS

Cette rubrique décrit les éléments des requêtes de sélection courantes utilisés dans ArcGIS. Les expressions de requête dans ArcGIS utilisent la syntaxe SQL.

Requêtes courantes : recherche de chaînes

Les chaînes doivent toujours être entourées de guillemets simples dans les requêtes, par exemple :

STATE_NAME = 'California'

Les chaînes respectent la casse dans les expressions. Pour effectuer une recherche sans distinguer les majuscules et les minuscules, vous pouvez utiliser une fonction SQL permettant d’appliquer la même casse à toutes les valeurs. Pour les sources de données fichier, telles que les géodatabases ou les shapefiles, vous pouvez utiliser la fonction UPPER ou LOWER pour définir la casse d’une sélection. L’expression suivante, par exemple, permet de sélectionner l’État américain dont le nom est enregistré sous « Rhode Island » ou « RHODE ISLAND » :

UPPER(STATE_NAME) = 'RHODE ISLAND'

Si la chaîne contient un guillemet simple, vous devez d’abord utiliser un autre guillemet simple comme caractère d’échappement, par exemple :

NAME = 'Alfie''s Trough'

Pour effectuer une recherche à l’aide d’une chaîne partielle, utilisez l’opérateur LIKE (au lieu de l’opérateur =). L’expression suivante, par exemple, permet de sélectionner Mississipi et Missouri dans les noms d’États américains :

STATE_NAME LIKE 'Miss%'

Le symbole de pourcentage (%) signifie qu'il peut être remplacé par tout : un caractère, cent caractères ou aucun caractère. Par contre, pour effectuer une recherche avec un caractère générique représentant un seul caractère, utilisez le caractère de soulignement (_). Par exemple, l’expression ci-dessous fournit les résultats Catherine Smith et Katherine Smith :

OWNER_NAME LIKE '_atherine smith'

Vous pouvez utiliser les opérateurs supérieur à (>), inférieur à (<), supérieur ou égal à (>=), inférieur ou égal à (<=), différent de (<>) et BETWEEN (entre) pour sélectionner les valeurs de chaîne en fonction de l’ordre de tri. Voici par exemple une expression qui permet de sélectionner toutes les villes d’une couverture dont la première lettre est comprise entre les lettres M et Z :

CITY_NAME >= 'M'

Des fonctions de chaîne peuvent être utilisées pour formater les chaînes. Par exemple, la fonction LEFT renvoie un certain nombre de caractères en commençant à gauche de la chaîne. Dans cet exemple, la requête renvoie tous les États commençant par la lettre A :

LEFT(STATE_NAME,1) = 'A'

Reportez-vous à la documentation fournie avec votre système de gestion de bases de données pour obtenir la liste des fonctions prises en charge.

Expressions courantes : recherche de valeurs nulles

Vous pouvez utiliser le mot-clé NULL afin de sélectionner les entités et les enregistrements comportant des valeurs nulles pour le champ spécifié. Le mot-clé NULL est toujours précédé de IS ou IS NOT. Par exemple, pour rechercher les villes dont la population en 1996 n’a pas été spécifiée, vous pouvez utiliser l’expression suivante :

POPULATION IS NULL

En revanche, pour rechercher les villes dont la population en 1996 a été spécifiée, vous pouvez utiliser l’expression suivante :

POPULATION96 IS NOT NULL

Expressions courantes : recherche de nombres

Le point (.) est toujours utilisé comme séparateur décimal, quels que soient vos paramètres régionaux ou locaux. La virgule ne peut pas être utilisée comme séparateur décimal ni séparateur des milliers dans une expression.

Vous pouvez effectuer des requêtes sur des nombres à l’aide des opérateurs égal à (=), différent de (<>), supérieur à (>), inférieur à (<), supérieur ou égal à (>=), inférieur ou égal à (<=) et BETWEEN (entre), par exemple :

POPULATION >= 5000

Des fonctions numériques peuvent être utilisées pour formater des nombres. Par exemple, la fonction ROUND permet d’arrondir un chiffre selon un nombre défini de décimales dans une géodatabase fichier :

ROUND(SQKM,0) = 500

Reportez-vous à la documentation fournie avec votre système de gestion de bases de données pour obtenir la liste des fonctions numériques prises en charge.

Date/heure

Règles générales et expressions courantes

Les sources de données de géodatabase stockent les dates dans un champ date-heure. Il convient de noter que ce n'est pas le cas pour les couvertures ArcInfo et les fichiers de formes. La plupart des syntaxes représentées ci-dessous contiennent par conséquent une référence à l'heure. Dans certains cas, la partie heure de la requête peut être omise si le champ contient uniquement des dates ; dans d’autres cas, cette partie heure doit être définie, sinon, la requête renvoie une erreur de syntaxe.

Lorsque votre recherche porte sur des champs de date, veillez à utiliser la syntaxe requise par votre source de données. Si vous créez une requête de date dans le mode Clause du Générateur de requêtes, la syntaxe appropriée est automatiquement générée. Voici un exemple de requête qui renvoie tous les enregistrements à partir du 1er janvier 2011, pour une source de données de géodatabase fichier :

INCIDENT_DATE >= date '2011-01-01 00:00:00'

Remarque :

les dates sont stockées dans la base de données sous-jacente comme référence au 30 décembre 1899 à 00:00:00. Cette règle s'applique pour toutes les sources de données répertoriées ici.

Cette section sert uniquement à vous aider dans vos recherches de dates et non d'heures. Lorsqu'une heure non nulle est stockée avec des dates (par exemple le 12 janvier 1999 à 04:00:00), la recherche lancée uniquement sur la date ne renvoie pas d'enregistrement. En effet, lorsque vous transmettez uniquement une date à un champ date-heure, l'heure est complétée par des zéros et seuls les enregistrements affichant l'heure 12:00:00 a.m sont extraits.

La table attributaire affiche la date et l'heure dans un format convivial en fonction de vos paramètres régionaux plutôt que du format de la base de données sous-jacente. Cette méthode convient dans la plupart des cas, mais elle présente les inconvénients suivants :

  • La chaîne indiquée dans la requête SQL reflète parfois assez peu la valeur affichée dans la table, en particulier dans le cas de l'heure. Par exemple, une heure saisie sous la forme 00:00:15 s’affiche sous la forme 12:00:15 a.m dans la table attributaire, avec États-Unis comme paramètres régionaux et Datefield = ’1899-12-30 00:00:15’ comme syntaxe de requête.
  • La table attributaire ignore la source de données sous-jacente tant que vous n'avez pas enregistré vos modifications. Elle tente tout d’abord d’adapter la valeur saisie à son propre format puis, une fois les modifications enregistrées, tente d’adapter la valeur obtenue afin de l’intégrer à la base de données. Pour cette raison, vous pouvez saisir une heure dans un fichier de formes, mais sachez qu'elle n'est pas conservée lorsque vous enregistrez vos modifications. Le champ contient alors une valeur « 1899-12-30 » qui s’affiche sous la forme 12:00:00 a.m. ou une forme équivalente en fonction de vos paramètres régionaux.

Syntaxe date-heure pour les géodatabases d’entreprise

Informix

Datefield = 'yyyy-mm-dd hh:mm:ss'

La partie hh:mm:ss de la requête ne peut pas être omise même si elle est égale à 00:00:00.

Oracle

Datefield = date 'yyyy-mm-dd'

N’oubliez pas que ce format ne renvoie aucun enregistrement dont l’heure n’est pas nulle.

Oracle propose un autre format d’interrogation des dates, qui est le suivant :

Datefield = TO_DATE('yyyy-mm-dd hh:mm:ss','YYYY-MM-DD HH24:MI:SS')

Le second paramètre 'YYYY-MM-DD HH24:MI:SS' décrit le format utilisé pour la requête. Une requête pourrait se présenter sous cette forme :

Datefield = TO_DATE('2003-01-08 14:35:00','YYYY-MM-DD HH24:MI:SS')

Vous pouvez utiliser une version abrégée :

TO_DATE('2003-11-18','YYYY-MM-DD')

De même, ce format ne renvoie aucun enregistrement dont l'heure n'est pas nulle.

Serveur SQL

Datefield = 'yyyy-mm-dd hh:mm:ss'

La partie hh:mm:ss de la requête peut être omise lorsque l'heure n'est pas définie dans les enregistrements.

Un autre format est le suivant :

Datefield = 'mm/dd/yyyy'

IBM DB2

Datefield = TO_DATE('yyyy-mm-dd hh:mm:ss','YYYY-MM-DD HH24:MI:SS')

La partie hh:mm:ss de la requête ne peut pas être omise même si l’heure est égale à 00:00:00.

PostgreSQL

Datefield = TIMESTAMP 'YYYY-MM-DD HH24:MI:SS' Datefield = TIMESTAMP 'YYYY-MM-DD'

Vous devez spécifier l’horodatage complet avec des requêtes « égal à », sinon aucun enregistrement ne sera renvoyé. Vos requêtes peuvent aboutir avec les instructions suivantes, si la table que vous interrogez contient des enregistrements de date avec ces paramètres d’horodatage exacts (2007-05-29 00:00:00 ou 2007-05-29 12:14:25) :

select * from table where date = '2007-05-29 00:00:00';

ou

select * from table where date = '2007-05-29 12:14:25';

Si vous utilisez d’autres opérateurs, tels que supérieur à, inférieur à, supérieur ou égal ou inférieur ou égal à, vous n’avez pas besoin d’indiquer l’heure, bien que ce soit possible pour ajouter ce niveau de précision. Les deux instructions suivantes fonctionneront :

select * from table where date < '2007-05-29';
select * from table where date < '2007-05-29 12:14:25';

Géodatabases fichier, fichier de formes, couvertures et autres sources de données fichier

Dans les géodatabases fichier, les shapefiles et les couvertures, les dates sont précédées de date.

Datefield = date 'yyyy-mm-dd'

Les géodatabases fichier prennent en charge l'utilisation d'une heure dans le champ de date ; cela peut donc être ajouté à l'expression :

Datefield = date 'yyyy-mm-dd hh:mm:ss'

Les fichiers de formes et les couvertures ne prennent pas en charge l'utilisation d'une heure dans un champ de date.

Remarque :

Le SQL utilisé par la géodatabase fichier est basé sur le SQL-92 standard.

Limitations connues

L'interrogation par rapport à une date dans la partie gauche (première table) d'une jointure aboutit uniquement avec les sources de données basées sur un fichier, telles que les géodatabases fichier, les fichiers de formes et les tables DBF. Il est toutefois possible de contourner le problème et d’utiliser des données qui ne sont pas basées sur un fichier, par exemple les données d’entreprise, comme expliqué ci-dessous.

Une interrogation par rapport à une date dans la partie gauche d'une jointure aboutit lorsque vous utilisez la version limitée de SQL développée pour les sources de données fichier. Si vous n'utilisez pas une telle source de données, vous pouvez forcer l'expression à utiliser ce format. Pour ce faire, vous devez vous assurer que l’expression de requête implique des champs de plusieurs tables de jointure. Par exemple, si une classe d’entités (FC1) et une table (Table1) sont jointes et qu’elles proviennent toutes les deux d’une géodatabase d’entreprise, les expressions suivantes échouent ou ne renvoient pas de données :

FC1.date = date #01/12/2001# FC1.date = date '01/12/2001'

Pour que l'interrogation aboutisse, vous pouvez créer une requête comme suit :

FC1.date = date '01/12/2001' and Table1.OBJECTID > 0

Comme la requête implique des champs de deux tables, la version SQL limitée est utilisée. Dans cette expression, Table1.OBJECTID est toujours > 0 pour les enregistrements correspondants pendant la création de jointure, de manière à ce que cette expression soit vraie pour tous les enregistrements contenant des correspondances de jointure.

Pour garantir que chaque enregistrement avec FC1.date = date ’01/12/2001’ est sélectionné, utilisez la requête suivante :

FC1.date = date '01/12/2001' and (Table1.OBJECTID IS NOT NULL OR Table1.OBJECTID IS NULL)

Cette requête sélectionne tous les enregistrements avec FC1.date = date '01/12/2001', qu'il existe ou non une correspondance de jointure pour chaque enregistrement particulier.

Combinaison des expressions

Des expressions composées peuvent être créées en combinant des expressions à l’aide des opérateurs AND et OR. Par exemple, pour sélectionner tous les bâtiments d’habitation occupant une surface supérieure à 1 500 pieds carrés avec un garage pouvant contenir trois voitures ou plus, utilisez l’expression suivante :

AREA > 1500 AND GARAGE > 3

Lorsque vous utilisez l’opérateur OR, au moins un des deux côtés de l’expression séparés par cet opérateur doit être vrai pour que l’enregistrement puisse être sélectionné, par exemple :

RAINFALL < 20 OR SLOPE > 35

Utilisez l’opérateur NOT au début d’une expression pour rechercher les entités ou les enregistrements qui ne correspondent pas à l’expression spécifiée, par exemple :

NOT STATE_NAME = 'Colorado'

Les expressions comportant l’opérateur NOT peuvent également combiner les opérateurs AND et OR. L’expression suivante, par exemple, permet de sélectionner tous les États de Nouvelle-Angleterre à l’exception du Maine :

SUB_REGION = 'New England' AND NOT STATE_NAME = 'Maine'

Calculs

Vous pouvez inclure des calculs dans les expressions à l’aide des opérateurs arithmétiques +, -, * et /. Les calculs peuvent être effectués entre des champs et des nombres, par exemple :

AREA >= PERIMETER * 100

Les calculs peuvent également être effectués entre différents champs. Ainsi, pour rechercher les départements ayant une densité de population inférieure ou égale à 25 habitants par kilomètre carré, vous pouvez utiliser l’expression suivante :

POP1990 / AREA <= 25

Précédence des opérateurs

Les expressions sont évaluées selon des règles standard de précédence des opérateurs. Par exemple, la partie d’une expression placée entre parenthèses est évaluée avant la partie en dehors des parenthèses.

HOUSEHOLDS > MALES * (POP90_SQMI + AREA)

En mode d’édition SQL, vous pouvez ajouter des parenthèses en les saisissant directement ou utiliser les commandes Grouper et Dissocier en mode Clause pour les ajouter ou les supprimer.

Sous-requêtes

Une sous-requête est une requête imbriquée dans une autre requête. Les sous-requêtes sont prises en charge uniquement par les sources de données de géodatabase. Elle peut être utilisée pour appliquer un prédicat ou des fonctions d'agrégation, ou pour comparer des données avec des valeurs stockées dans une autre table. Ces opérations peuvent être effectuées à l'aide du mot-clé IN ou ANY. Par exemple, cette requête permet de sélectionner uniquement les pays qui ne sont pas répertoriés dans la table indep_countries :

COUNTRY_NAME NOT IN (SELECT COUNTRY_NAME FROM indep_countries)

Remarque :

Les couvertures, les fichiers de formes et les autres sources de données fichier ne figurant pas dans une géodatabase ne prennent pas en charge les sous-requêtes. Les sous-requêtes qui sont effectuées sur des tables et des classes d’entités d’entreprise versionnées ne renvoient pas les entités qui sont stockées dans les tables de deltas. Les géodatabases fichier fournissent une prise en charge limitée des sous-requêtes, décrite dans cette section, alors que les géodatabases d’entreprise assurent leur prise en charge totale. Pour plus d’informations sur le jeu complet de fonctionnalités de sous-requête des géodatabases d’entreprise, reportez-vous à la documentation de votre système de gestion de bases de données.

Cette requête renvoie les entités affichant une valeur GDP2006 supérieure à la valeur GDP2005 de n'importe quelle entité contenue dans les pays :

"GDP2006" > (SELECT MAX("GDP2005") FROM countries)

La prise en charge des sous-requêtes dans les géodatabases fichier est limitée aux éléments suivants :

  • Sous-requêtes scalaires avec des opérateurs de comparaison. Une sous-requête scalaire renvoie une seule valeur, par exemple :
    "GDP2006" > (SELECT MAX("GDP2005") FROM countries)
    Pour les géodatabases fichier, les fonctions Set AVG, COUNT, MIN, MAX et SUM peuvent être utilisées uniquement dans des sous-requêtes scalaires.
  • Prédicat EXISTS, par exemple :
    EXISTS (SELECT * FROM indep_countries WHERE "COUNTRY_NAME" = 'Mexico')

Opérateurs

Vous trouverez ci-après la liste complète des opérateurs de requête pris en charge par les géodatabases fichier, les fichiers de formes, les couvertures et les autres sources de données fichier. Ils sont également pris en charge par les géodatabases d’entreprise, bien que ces sources de données puissent exiger une syntaxe différente. Outre les opérateurs ci-après, les géodatabases d’entreprise prennent en charge d’autres fonctionnalités. Reportez-vous à la documentation de votre système de gestion de bases de données pour en savoir plus.

Opérateurs arithmétiques

Vous utilisez un opérateur arithmétique pour additionner, soustraire, multiplier et diviser des valeurs numériques.

OpérateurDescription

*

Opérateur arithmétique pour la multiplication

/

Opérateur arithmétique pour la division

+

Opérateur arithmétique pour l'addition

-

Opérateur arithmétique pour la soustraction

Opérateurs arithmétiques

Opérateurs de comparaison

Vous utilisez des opérateurs de comparaison pour comparer une expression à une autre.

OpérateurDescription

<

Inférieur à. Cet opérateur peut être utilisé avec des chaînes (la comparaison est effectuée par ordre alphabétique), des nombres et des dates.

<=

Plus petit que ou égale à. Cet opérateur peut être utilisé avec des chaînes (la comparaison est effectuée par ordre alphabétique), des nombres et des dates.

<>

N'est pas égal à. Cet opérateur peut être utilisé avec des chaînes (la comparaison est effectuée par ordre alphabétique), des nombres et des dates.

>

Supérieur à. Cet opérateur peut être utilisé avec des chaînes (la comparaison est effectuée par ordre alphabétique), des nombres et des dates.

>=

Plus grand que ou égal à. Cet opérateur peut être utilisé avec des chaînes (la comparaison est effectuée par ordre alphabétique), des nombres et des dates.

[NOT] BETWEEN x AND y

Sélectionne un enregistrement s’il a une valeur supérieure ou égale à x et inférieure ou égale à y. Quand cet opérateur est précédé de NOT, il sélectionne un enregistrement s’il contient une valeur en dehors de la plage spécifiée. Par exemple, cette expression sélectionne tous les enregistrements avec une valeur supérieure ou égale à 1 et inférieure ou égale à 10 :

"OBJECTID" BETWEEN 1 AND 10

C'est l'équivalent de l'expression suivante :

"OBJECTID" >= 1 AND OBJECTID <= 10

Cependant, l'expression avec BETWEEN fournit de meilleures performances si vous interrogez un champ indexé.

[NOT] EXISTS

Renvoie la valeur TRUE (vrai) si la sous-requête renvoie au moins un enregistrement ; sinon la valeur FALSE (faux) est renvoyée. Par exemple, cette expression renvoie la valeur TRUE si le champ OJBECTID contient la valeur 50 :

EXISTS (SELECT * FROM parcels WHERE "OBJECTID" = 50)

EXISTS est pris en charge dans les géodatabases fichier et d’entreprise uniquement.

[NOT] IN

Sélectionne un enregistrement s'il comporte dans un champ un élément parmi plusieurs chaînes ou valeurs. Quand cet opérateur est précédé de NOT, il sélectionne un enregistrement s'il ne contient pas un élément parmi plusieurs chaînes ou valeurs dans un champ. Voici par exemple une expression qui recherche quatre noms d'état différents :

"STATE_NAME" IN ('Alabama', 'Alaska', 'California', 'Florida')

IS [NOT] NULL

Sélectionne un enregistrement s'il a une valeur Null pour le champ spécifié. Quand NULL est précédé de NOT, sélectionne un enregistrement s’il comporte une valeur quelconque pour le champ spécifié.

x [NOT] LIKE y [ESCAPE 'caractère d’échappement']

Pour effectuer une recherche à l'aide d'une chaîne partielle, utilisez l'opérateur LIKE (au lieu de l'opérateur =) et ajoutez des caractères génériques. Le symbole de pourcentage (%) signifie qu'il peut être remplacé par tout : un caractère, cent caractères ou aucun caractère. Par contre, pour effectuer une recherche avec un caractère générique représentant un seul caractère, utilisez le caractère de soulignement (_). Si vous devez accéder à des données d'un autre type, utilisez la fonction CAST. Par exemple, cette requête renvoie des nombres qui commencent par 8 à partir du champ de nombre entier SCORE_INT :

CAST ("SCORE_INT" AS VARCHAR) LIKE '8%'

Pour inclure le symbole du pourcentage ou du caractère de soulignement dans la chaîne de recherche, utilisez le mot-clé ESCAPE pour désigner un autre caractère comme caractère d’échappement, lequel indique à son tour que le caractère de pourcentage ou de soulignement suit immédiatement après. Par exemple, cette expression renvoie une chaîne contenant 10 %, par exemple, 10 % REMISE ou A10% :

"AMOUNT" LIKE '%10$%%' ESCAPE '$'

Opérateurs de comparaison

Opérateurs logiques

OpérateurDescription

ET

Combine deux conditions et sélectionne un enregistrement si les deux conditions sont vraies. Par exemple, l'expression suivante sélectionne toute maison avec une surface supérieure à 1500 pieds carrés et un garage pour plus de deux voitures :

"AREA" > 1500 AND "GARAGE" > 2

OU

Combine deux conditions et sélectionne un enregistrement si une condition au moins est vraie. Par exemple, l'expression suivante sélectionne toute maison avec une surface supérieure à 1500 pieds carrés ou un garage pour plus de deux voitures :

"AREA" > 1500 OR "GARAGE" > 2

NON

Sélectionne un enregistrement s'il ne correspond pas à l'expression. Par exemple, l’expression suivante sélectionne tous les États sauf la Californie :

NOT "STATE_NAME" = 'California'

Opérateurs logiques

Opérateurs de chaîne

OpérateurDescription

||

Renvoie une chaîne de caractères qui est le résultat de la concaténation de deux expressions de chaîne ou plus.

FIRST_NAME || MIDDLE_NAME || LAST_NAME

Fonctions

Vous trouverez ci-après la liste complète des fonctions prises en charge par les géodatabases fichier, les fichiers de formes, les couvertures et les autres sources de données fichier. Les fonctions sont également prises en charge par les géodatabases d’entreprise, bien que ces sources de données puissent exiger une syntaxe différente ou d’autres noms de fonction. Outre les fonctions ci-après, les géodatabases d’entreprise prennent en charge d’autres fonctionnalités. Reportez-vous à la documentation de votre système de gestion de bases de données pour en savoir plus.

Fonctions de date

FonctionDescription

CURRENT_DATE

Renvoie la date actuelle.

EXTRACT(extract_field FROM extract_source)

Renvoie la partie extract_field de l'argument extract_source. L'argument extract_source désigne une expression de date-heure. L'argument extract_field peut correspondre à l'un des mots-clés suivants : ANNEE, MOIS, JOUR, HEURE, MINUTE ou SECONDE.

CURRENT_TIME

Renvoie l'heure actuelle.

Fonctions de date

Fonctions de chaîne

Les arguments signalés par string_exp peuvent représenter le nom d’une colonne, un littéral de chaîne de caractères ou le résultat d’une autre fonction scalaire dans lequel le type de données sous-jacent peut être représenté par un type de caractère.

Les arguments signalés par character_exp représentent des chaînes de caractères à longueur variable.

Les arguments signalés par start ou length peuvent représenter un littéral numérique ou le résultat d’une autre fonction scalaire dans lequel le type de données sous-jacent peut représenter un type numérique.

Ces fonctions de chaîne sont de base 1, c’est-à-dire que le premier caractère de la chaîne représente la valeur 1.

FonctionDescription

CHAR_LENGTH(string_exp)

Renvoie la longueur en caractères de l'expression de chaîne.

LOWER(string_exp)

Renvoie une chaîne égale à string_exp en convertissant toutes les majuscules en minuscules.

POSITION (character_exp IN character_exp)

Renvoie la position de la première expression de caractères dans la seconde expression de caractères. Le résultat se présente sous la forme d'une valeur numérique exacte avec une précision définie au niveau de l'implémentation et une échelle de zéro.

SUBSTRING(string_exp FROM start FOR length)

Renvoie une chaîne de caractères dérivée de string_exp, commençant à la position spécifiée par start pour les caractères length.

TRIM(BOTH | LEADING | TRAILING trim_character FROM string_exp)

Renvoie l'argument string_exp avec trim_character supprimés du début, de la fin ou des deux extrémités de la chaîne.

UPPER(string_exp)

Renvoie une chaîne égale à string_exp en convertissant toutes les minuscules en majuscules.

Fonctions de chaîne

Fonctions numériques

Toutes les fonctions numériques renvoient une valeur numérique.

Les arguments signalés par numeric_exp, float_exp ou integer_exp peuvent représenter le nom d’une colonne, le résultat d’une autre fonction scalaire ou un littéral numérique dans lequel le type de données sous-jacent peut représenter un type numérique.

FonctionDescription

ABS(numeric_exp)

Renvoie la valeur absolue de numeric_exp.

ACOS(float_exp)

Renvoie l'arcosinus de float_exp sous forme d'un angle exprimé en radians.

ASIN(float_exp)

Renvoie l'arcsine de float_exp sous forme d'un angle exprimé en radians.

ATAN(float_exp)

Renvoie l'arctangente de float_exp sous forme d'un angle exprimé en radians.

CEILING(numeric_exp)

Renvoie le plus petit nombre entier supérieur ou égal à numeric_exp.

COS(float_exp)

Renvoie le cosinus de float_expfloat_exp représente un angle exprimé en radians.

FLOOR(numeric_exp)

Renvoie le plus grand nombre entier inférieur ou égal à numeric_exp.

LOG(float_exp)

Renvoie le logarithme naturel de float_exp.

LOG10(float_exp)

Renvoie le logarithme de base 10 de float_exp.

MOD(integer_exp1, integer_exp2)

Renvoie le reste de la division de integer_exp1 par integer_exp2.

POWER(numeric_exp, integer_exp)

Renvoie la valeur de numeric_exp à la puissance de integer_exp.

ROUND(numeric_exp, integer_exp)

Renvoie numeric_exp arrondi à la valeur integer_exp à droite de la virgule. Si integer_exp est négatif, numeric_exp est arrondi à |integer_exp| à gauche de la virgule.

SIGN(numeric_exp)

Renvoie un indicateur du signe de numeric_exp. Si numeric_exp est inférieur à zéro, la valeur -1 est renvoyée. Si numeric_exp est égal à zéro, la valeur 0 est renvoyée. Si numeric_exp est supérieur à zéro, la valeur 1 est renvoyée.

SIN(float_exp)

Renvoie le sinus de float_expfloat_exp représente un angle exprimé en radians.

TAN(float_exp)

Renvoie la tangente de float_expfloat_exp représente un angle exprimé en radians.

TRUNCATE(numeric_exp, integer_exp)

Renvoie numeric_exp tronqué à integer_exp positions à droite de la virgule. Si integer_exp est négatif, numeric_exp est tronqué à |integer_exp| à gauche de la virgule.

Fonctions numériques

Fonction CAST

La fonction CAST permet de convertir une valeur dans un type de données spécifié. La syntaxe est la suivante :

CAST(exp AS data_type)

L’argument exp peut être le nom d’une colonne, le résultat d’une autre fonction scalaire ou un symbole littéral. Data_type peut correspondre à l’un des mots-clés suivants, qui peuvent être spécifiés en majuscules ou en minuscules : CHAR, VARCHAR, INTEGER, SMALLINT, REAL, DOUBLE, DATE, TIME, DATETIME, NUMERIC ou DECIMAL.