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.

AttentionAttention :

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, vous ne devez fournir un délimiteur que 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 image 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"

Chaînes

Les chaînes de requête doivent toujours être placées entre guillemets simples. Par exemple :

STATE_NAME = 'California'

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'.

RemarqueRemarque :

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.

RemarqueRemarque :

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

RemarqueRemarque :

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 retournent pas d'entités 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 :

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 arithmétiques

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 si cet enregistrement contient 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, 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 nulle 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 nulle 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 caracètre 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 de comparaison

Opérateurs logiques

Opérateur

Description

ET

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

OU

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 logiques

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 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 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.

CONCAT(string_exp1, string_exp2)

Renvoie une chaîne de caractères comme résultat de la concaténation de string_exp2 vers string_exp1.

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.

Fonction

Description

ABS(numeric_exp)

Renvoie la valeur absolue de numeric_exp.

ACOS(float_exp)

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

ASIN(float_exp)

Renvoie l'arcsinus 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.

Pour plus d'informations sur la fonction CAST, reportez-vous à la rubrique suivante CAST et CONVERT.

Rubriques connexes


7/10/2012