Référence SQL pour les expressions de requête utilisées dans ArcGIS
Cette rubrique décrit les éléments de requêtes communes utilisés dans les expressions de sélection dans ArcGIS. Les expressions de requête dans ArcGIS utilisent la syntaxe SQL.
La syntaxe SQL ne fonctionne pas pour le calcul des champs à l'aide du Calculateur de champs.
Champs
Pour spécifier un champ dans une expression SQL, fournissez un délimiteur si le nom de champ risque d'être ambigu, par exemple, s'il porte le même nom qu'un mot clé réservé SQL.
Cependant, compte tenu du nombre de mots-clés réservés et de l'ajout probable de nouveaux mots-clés dans les versions ultérieures, il est judicieux de placer systématiquement un nom de champ entre des délimiteurs.
Les délimiteurs de nom de champ diffèrent d'un SGBD à l'autre. Si vous interrogez des données basées sur des fichiers, telles qu'une géodatabase fichier, des données de géodatabase ArcSDE ou des données contenues dans une classe d'entités ArcIMS ou une sous-couche de service d'imagerie ArcIMS, placez les noms de champs entre guillemets doubles :
"AREA"
Si vous interrogez des données de géodatabase personnelle, vous pouvez placer les champs entre crochets :
[AREA]
Pour les jeux de données raster de géodatabase personnelle, il est conseillé de placer les noms de champ entre guillemets doubles :
"AREA"
Pour les données des géodatabases fichier, vous pouvez placer le nom de vos champs entre guillemets doubles, mais cela n'est généralement pas nécessaire.
AREA
Chaînes
Les chaînes de requête doivent toujours être placées entre guillemets simples. Par exemple :
STATE_NAME = 'California'
- Les chaînes respectent la casse dans les expressions. Pour les classes d'entités et les tables, vous pouvez utiliser la fonction UPPER ou LOWER pour définir la casse d'une sélection. Par exemple :
UPPER(STATE_NAME) = 'RHODE ISLAND'
- Les chaînes ne respectent pas la casse pour les classes d'entités et les tables de géodatabases personnelles. Le cas échéant, vous pouvez utiliser les fonctions UCASE et LCASE qui sont équivalentes à UPPER ou LOWER.
- 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'
Les caractères génériques utilisés pour effectuer une recherche à l'aide d'une chaîne partielle dépendent également de la source de données interrogée. Par exemple, dans une source de données fichier ou de géodatabase ArcSDE, cette expression sélectionne Mississippi et Missouri parmi 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. Les caractères génériques utilisés pour interroger les géodatabases personnelles sont l'astérisque (*) pour remplacer tout nombre de caractères et le point d'interrogation (?) pour remplacer un caractère.
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 SGBD pour obtenir la liste des fonctions prises en charge.
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 chiffres à l'aide des opérateurs égal à (=), différent de (<>), supérieur à (>), inférieur à (<), supérieur ou égal à (>=), inférieur ou égal à (<=) et 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 SGBD pour obtenir la liste des fonctions numériques prises en charge.
Date/heure
Règles générales
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.
Le format de date ArcMap a pour principal objectif le stockage des dates et non des heures. Il est possible, bien que cela ne soit pas recommandé, de stocker une heure dans le champ lorsque la base de données sous-jacente utilise un champ date-heure. La recherche par rapport à une heure peut s'avérer compliquée ; par exemple, 12:30:05 p.m sera stockée sous la forme '1899-12-30 12:30:05'.
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 quelques inconvénients :
- 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 Etats-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 ArcSDE
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.
SQL Server
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 à" ou 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 fichiers de formes 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.
Le SQL utilisé par la géodatabase fichier est basé sur le SQL-92 standard.
Géodatabase personnelle
Dans les géodatabases personnelles, les dates sont délimitées à l'aide du symbole du dièse (#).
Par exemple :
[Datefield] = #mm-dd-yyyy hh:mm:ss#
Ce paramètre peut être abrégé sous la forme [Datefield] = #mm-dd-yyyy#.
Un autre format est le suivant
[Datefield] = #yyyy/mm/dd#
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, comme les données de géodatabase personnelle et les données ArcSDE 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 personnelle, 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.
Sous-requêtes
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 ArcSDE 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 personnelles et ArcSDE fournissent une prise en charge totale des sous-requêtes. Pour plus d'informations sur le jeu complet de fonctionnalités de sous-requête des géodatabases personnelles et ArcSDE, reportez-vous à la documentation de votre SGBD.
Une sous-requête est une requête imbriquée dans une autre requête. 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)
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)
Pour chaque enregistrement de la table, une sous-requête doit peut-être analyser toutes les données de sa table cible. Cette opération peut se révéler extrêmement lente sur un jeu de données volumineux.
La prise en charge des sous-requêtes dans les géodatabases fichier est limitée aux éléments suivants :
- Prédicat IN. Par exemple :
"COUNTRY_NAME" NOT IN (SELECT "COUNTRY_NAME" FROM indep_countries)
- 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 personnelles et ArcSDE, bien que ces sources de données puissent exiger une syntaxe différente. Outre les opérateurs ci-après, les géodatabases personnelles et ArcSDE prennent en charge des fonctionnalités supplémentaires. Consultez la documentation de votre SGBD pour plus de détails.
Opérateurs arithmétiques
Vous utilisez un opérateur arithmétique pour additionner, soustraire, multiplier et diviser des valeurs numériques.
Opérateur |
Description |
---|---|
* |
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 de comparaison
Vous utilisez des opérateurs de comparaison pour comparer une expression à une autre.
Opérateur |
Description |
---|---|
< |
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. Par exemple, cette requête sélectionne toutes les villes dont le nom commence par les lettres M à Z : "CITY_NAME" >= 'M' |
[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 10C'est l'équivalent de l'expression suivante : "OBJECTID" >= 1 AND OBJECTID <= 10Cependant, 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, personnelles et ArcSDE 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')Pour les géodatabases fichier, personnelles et ArcSDE, cet opérateur peut aussi être appliqué à une sous-requête : "STATE_NAME" IN (SELECT "STATE_NAME" FROM states WHERE "POP" > 5000000) |
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é. Par exemple, cette expression sélectionne tous les enregistrements avec une valeur Null pour la population : "POPULATION" IS NULL |
x [NOT] LIKE y [ESCAPE 'escape-character'] |
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. Par exemple, cette expression sélectionne Mississippi 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, cette expression trouve Catherine Smith et Katherine Smith : "OWNER_NAME" LIKE '_atherine Smith'Les caractères génériques du pourcentage et du soulignement fonctionnent pour toutes les données fichier ou géodatabase multi-utilisateurs. LIKE fonctionne avec des données de type caractère des deux côtés de l'expression. 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 '$'Les caractères génériques utilisés pour interroger les géodatabases personnelles sont l'astérisque (*) pour remplacer tout nombre de caractères et le point d'interrogation (?) pour remplacer un caractère. Le signe du dièse (#) sert également de caractère générique pour remplacer un seul chiffre (valeur numérique). Par exemple, cette requête renvoie les numéros de parcelle A1, A2, etc. d'une géodatabase personnelle : [PARCEL_NUMBER] LIKE 'A#' |
Opérateurs logiques
Opérateur |
Description |
---|---|
AND |
Combine deux conditions ensemble 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 |
OR |
Combine deux conditions ensemble 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 |
NOT |
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 de chaîne
Opérateur |
Description |
---|---|
|| |
Renvoie une chaîne de caractères comme résultat de la concaténation de deux expressions de chaîne ou plus ensemble. 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. Elles sont également prises en charge par les géodatabases personnelles et ArcSDE, bien que ces sources de données puissent exiger une syntaxe différente ou un autre nom de fonction. Outre les fonctions ci-après, les géodatabases personnelles et ArcSDE prennent en charge des fonctionnalités supplémentaires. Pour plus de détails, reportez-vous à la documentation de votre SGBD.
Fonctions de date
Fonction |
Description |
---|---|
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 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 de 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.
Fonction |
Description |
---|---|
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 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.
Fonction |
Description |
---|---|
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_exp où float_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_exp où float_exp représente un angle exprimé en radians. |
TAN(float_exp) |
Renvoie la tangente de float_exp où float_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. |
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.
Pour plus d'informations sur la fonction CAST, reportez-vous à la rubrique suivante CAST et CONVERT.