Fonctions communes A-C D-G H-L M-Q R-Z Fonctions trigonométriques
Fonctions scalaires SQL-99 abs ( numeric_expression ) Renvoie la valeur absolue de "expression_numérique". Les valeurs négatives sont renvoyées sous forme de valeurs positives. Exemple : abs ( 15 ) Résultat : 15 Exemple : abs ( -15 ) Résultat : 15 bit_length bit_length ( expression_chaîne ) Renvoie le nombre de bits contenus dans "expression_chaîne". cast ( expression , spécification_type_données ) Convertit "expression" en un type de données défini. Certains types de données permettent de définir une longueur et un degré de précision. Assurez-vous que les attributs de type et de taille de la cible sont corrects. Les types de données suivants peuvent être utilisés pour "définition_type_données" : CHARACTER, VARCHAR, CHAR, NUMERIC, DECIMAL, INTEGER, BIGINT, SMALLINT, REAL, FLOAT, DATE, TIME, TIMESTAMP, TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE et INTERVAL. Lorsque vous définissez une conversion de type INTERVAL, vous devez spécifier l'un des qualificatifs suivants : YEAR, MONTH, ou YEAR TO MONTH pour un intervalle de type Année à mois ; DAY, HOUR, MINUTE, SECOND, DAY TO HOUR, DAY TO MINUTE, DAY TO SECOND, HOUR TO MINUTE, HOUR TO SECOND ou MINUTE TO SECOND pour un intervalle de type Jour à seconde. Remarques : Lorsque vous convertissez une valeur de type TIMESTAMP à DATE, la portion heure de la valeur d'horodatage est omise. Lorsque vous convertissez une valeur de type TIMESTAMP à TIME, la portion date de la valeur d'horodatage est omise. Lorsque vous convertissez une valeur de type DATE à TIMESTAMP, la partie heure de la valeur d'horodatage est définie à zéro. Lorsque vous convertissez une valeur de type TIME à TIMESTAMP, la portion date de la valeur d'horodatage est définie à la date courante du système. Il est impossible de convertir un type d'intervalle en un autre (parce que le nombre de jours dans un mois est variable, par exemple). Notez que vous pouvez seulement définir le nombre de chiffres pour le premier qualificatif, par exemple YEAR(4) TO MONTH ou DAY(5). Des erreurs se produiront si les attributs de taille et de type de la cible ne sont pas compatibles avec ceux de la source. Exemple : cast ( '123' , integer ) Résultat : 123 Exemple : cast ( 12345 , varchar ( 10 ) ) Résultat : une chaîne contenant 12345 char_length ( expression_chaîne ) Renvoie le nombre de caractères logiques contenus dans "expression_chaîne". Le nombre de caractères logiques peut être différent du nombre d'octets dans certaines langues d'Asie orientale. Exemple : char_length ( 'Canada' ) Résultat : 6 character_length ( expression_chaîne ) Renvoie le nombre de caractères contenus dans "expression_chaîne". Exemple : character_length ( 'Canada' ) Résultat : 6 current_date  current_date  Renvoie une valeur de date représentant la date courante de l'ordinateur sur lequel tourne le logiciel de base de données. Exemple : current_date Résultat : 2003-03-04 current_time current_time Renvoie une valeur d'heure avec fuseau horaire représentant l'heure courante de l'ordinateur sur lequel s'exécute le logiciel de base de données, si cette fonction est prise en charge dans la base de données. Sinon, représente l'heure de l'ordinateur exécutant IBM® Cognos® BI Software. Exemple : current_time Résultat : 16:33:11.354+05:00 current_timestamp current_timestamp Renvoie une valeur date-heure avec fuseau horaire représentant l'heure courante de l'ordinateur sur lequel s'exécute le logiciel de base de données, si cette fonction est prise en charge dans la base de données. Sinon, représente l'heure de l'ordinateur exécutant le logiciel IBM® Cognos® BI. Exemple : current_timestamp Résultat : 2003-03-03 16:40:15.535+05:00 localtime  localtime  Renvoie une valeur de temps représentant l'heure courante de l'ordinateur sur lequel s'exécute le logiciel de base de données. Exemple : localtime Résultat : 16:33:11 localtimestamp localtimestamp Renvoie une valeur date-heure représentant l'horodatage courant de l'ordinateur sur lequel s'exécute le logiciel de base de données. Exemple : localtimestamp Résultat : 2003-03-03 16:40:15 extract ( datepart , expression_date-heure ) Renvoie un entier représentant la valeur partie_date (année, mois, jour, heure, minute, seconde, époque) dans "expression_date-heure". Exemple : extract ( year , 2003-03-03 16:40:15.535 ) Résultat : 2003 Exemple : extract ( hour , 2003-03-03 16:40:15.535 ) Résultat : 16 Exemple : extract ( epoch ; 2014-11-23 ) Résultat : 1416718800 lower ( expression_chaîne ) Convertit en minuscules tous les caractères en majuscules de "expression_chaîne". Exemple : lower ( 'ABCDEF' ) Résultat : abcdef mod ( expression_entier1, expression_entier2 ) Renvoie le reste (modulo) de "expression_entier1" divisé par "expression_entier2". La valeur "expression_entier2" doit être différente de zéro, sinon cela génère une condition d'exception. Exemple : mod ( 20 , 3 ) Résultat : 2 occurrences_regex ( expression_regex , expression_chaîne [ , expression_entier [ , expression_indicateurs ]] ) Renvoie la valeur d'entier représentant le nombre d'occurrences de l'expression régulière "expression_regex" dans "expression_chaîne". La recherche débute à la position "expression_entier", dont la valeur par défaut est 1. Les indicateurs pour définir les options d'interprétation de l'expression régulière sont définis par "expression_indicateurs". Les indicateurs sont définis par une lettre : 's', 'm', 'i' ou 'x'. Exemple : occurrences_regex ( '.er' , 'Lampe-tempête PermaLux') Résultat : 2 octet_length ( expression_chaîne ) Renvoie le nombre d'octets contenus dans "expression_chaîne". Exemple : octet_length ( 'ABCDEF' ) Résultat : 6 Exemple : octet_length ( '' ) Résultat : 0 position ( expression_chaîne1 , expression_chaîne2 ) Renvoie la valeur de l'entier représentant la position de début de "expression_chaîne1" dans "expression_chaîne2" ou 0 lorsque "expression_chaîne1" est introuvable. Exemple : position ( 'C' , 'ABCDEF' ) Résultat : 3 Exemple : position ( 'H' , 'ABCDEF' ) Résultat : 0 position_regex ([ start|after ]  expression_regex , expression_chaîne [ , expression_entier1 [ , expression_entier2 [ , expression_indicateurs ]]] ) Renvoie la valeur d'entier représentant la position initiale ou finale de la sous-chaîne dans "expression_chaîne" qui correspond à l'expression régulière "expression_regex". La recherche débute à la position "expression_entier1", dont la valeur par défaut est 1. L'occurrence du motif à rechercher est définie par "expression_entier2", dont la valeur par défaut est 1. L'option de renvoi, définie par le premier argument, définit ce qui est renvoyé pour l'occurrence. Si vous spécifiez "start", la position du premier caractère de l'occurrence est renvoyée. Si vous spécifiez "after", la position du caractère qui suit l'occurrence est renvoyée. Si vous ne spécifiez pas d'option de renvoi, la valeur implicite "start" est utilisée. Les indicateurs pour définir les options d'interprétation de l'expression régulière sont définis par "expression_indicateurs". Les indicateurs sont définis par une lettre : 's', 'm', 'i' ou 'x'. Exemple : position_regex ( '.er' , 'Lampe-tempête PermaLux') Résultat : 5 Exemple : position_regex ( after '.er' , 'Lampe-tempête PermaLux' ) Résultat : 8 Exemple : position_regex ( '.er' , 'Lampe-tempête PermaLux' , 1 , 2 ) Résultat : 12 trim ( [ [ trailing|leading|both ] [ expression_caractère_correspondance ] , ] expression_chaîne ) Renvoie une expression "expression_chaîne" sans les blancs de droite ou de gauche ou sans le caractère indiqué dans "expression_caractère_correspondance". "BOTH" est la valeur implicite lorsque le premier argument n'est pas indiqué et un blanc est la valeur implicite lorsque le second argument n'est pas indiqué. Exemple : trim ( trailing 'A' , 'ABCDEFA' ) Résultat : ABCDEF Exemple : trim ( both , ' ABCDEF ' ) Résultat : ABCDEF upper ( expression_chaîne ) Convertit tous les caractères minuscules de "expression_chaîne" en majuscules. Exemple : upper ( 'abcdef' ) Résultat : ABCDEF user user Renvoie un identificateur d'autorisation au gestionnaire de la base de données au moment de l'exécution. nullif nullif ( expression1, expression2 ) Renvoie la valeur Null si les expressions "expression1" et "expression2" sont égales, sinon la fonction renvoie "expression1". coalesce ( liste_expressions ) Renvoie le premier argument non nul (ou la valeur NULL si tous les arguments sont nuls). Nécessite deux arguments ou davantage dans "liste_expressions". coalesce ( [Prix unitaire], [Prix unitaire de vente] ) Résultat : Renvoie le prix unitaire, ou le prix unitaire de vente si le premier est nul. coalesce ( liste_expressions ) Renvoie le premier argument non nul (ou la valeur NULL si tous les arguments sont nuls). Nécessite un ou plusieurs arguments dans "liste_expressions". coalesce ( [Prix unitaire], [Prix unitaire de vente] ) Résultat : Renvoie le prix unitaire, ou le prix unitaire de vente si le premier est nul. ceil ( expression_numérique ) Renvoie le plus petit entier supérieur ou égal à "expression_numérique". ceiling ( expression_numérique ) Renvoie le plus petit entier supérieur ou égal à "expression_numérique". Exemple : ceiling ( 4.22 ) Résultat : 5 Exemple : ceiling ( -1.23 ) Résultat : -1 ln ( expression_numérique ) Renvoie le logarithme naturel de "expression_numérique". Exemple : ln ( 4 ) Résultat : 1.38629 exp ( expression_numérique ) Renvoie "e" à la puissance "expression_numérique". La constante "e" est la base du logarithme naturel. Exemple : exp ( 2 ) Résultat : 7.389056 period ( expression_date-heure1 , expression_date-heure2 ) Construit une valeur périodique avec le point de départ "expression_date-heure1" et le point de fin "expression_date-heure2". Les types de données des points des départ et de fin doivent être identiques, et peuvent être date, heure ou date-heure. Les valeurs périodiques peuvent être utilisées dans des prédicats de période. Exemple : period ( 2003-03-03 , 2003-10-03 ) Exemple : period ( 12:00:00 , 23:59:59 ) Exemple : period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) Exemple : period ( [EMP].[BUS_START] , [EMP].[BUS_END] ) power ( expression_numérique1 , expression_numérique2 ) Renvoie "expression_numérique1" élevé à la puissance "expression_numérique2". Si "expression_numérique1" est négatif, "expression_numérique2" doit représenter un entier. Exemple : power ( 3 , 2 ) Résultat : 9 random ( [ integer_expression ] ) Renvoie une valeur aléatoire à virgule flottante se situant entre 0 et 1, en utilisant "integer_expression" comme valeur de départ. _round ( expression_chaîne , expression_entier ) Renvoie la valeur "expression_numérique" arrondie à "expression_entier" positions à droite du séparateur décimal. Remarques : "expression_entier" doit être un entier non négatif. L'arrondi est calculé avant que le formatage des données ne soit appliqué. Exemple : _round ( 1220.42369, 2 ) Résultat : 1220.42 Le constructeur de ligne représente un ensemble de valeurs organisées en ligne de données. Il peut être utilisé en expressions conditionnelles (IF-THEN-ELSE) et expressions de filtre (clause IN). row ( liste_expressions ) Exemple: if ( row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') Résultat : renvoie 'A' si le nom du revendeur est 'ActiForme' et le code de mode de commande est 4. Sinon, la valeur 'B' est renvoyée. Exemple : case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end Résultat : renvoie 1 si le nom du revendeur est 'Advanced Climbing Ltd' et le code de mode de commande est 3. Renvoie 2 si le nom du revendeur est 'ActiForme' et le code de mode de commande est 5. Sinon, c'est la valeur 3 qui est renvoyée. Exemple : row ( [OrderMethodCode] ; [Year] ) in ( [Query].[OMC] ; [Query].[YR] ) Résultat : les données renvoyées sont filtrées sur les deux conditions suivantes : 1) [OrderMethodCode] in ([Query].[OMC]) 2) [Year] in ([Query].[YR]) sqrt ( expression_numérique ) Renvoie la racine carrée de "expression_numérique". La valeur "expression_numérique" ne doit pas être négative. Exemple : sqrt ( 9 ) Résultat : 3 substring ( expression_entier , expression_entier1 [ , expression_entier2 ] ) Renvoie la sous-chaîne de "expression_chaîne" qui commence à la position "expression_entier1" et dont la longueur est de "expression_entier2" caractères, ou qui se termine par "expression_chaîne" if "expression_entier2" est omise. Le premier caractère de "expression_chaîne" occupe la position 1. Exemple : substring ( 'abcdefg' , 3 , 2 ) Résultats : cd substring_regex ( expression_regex , expression_chaîne [ , expression_entier1 [ , expression_entier2 [ , expression_indicateurs ]]] ) Renvoie une sous-chaîne de "expression_chaîne" qui correspond à l'expression régulière "expression_regex". La recherche débute à la position "expression_entier1", dont la valeur par défaut est 1. L'occurrence du motif à rechercher est définie par "expression_entier2", dont la valeur par défaut est 1. Les indicateurs pour définir les options d'interprétation de l'expression régulière sont définis par "expression_indicateurs". Les indicateurs sont définis par une lettre : 's', 'm', 'i' ou 'x'. Exemple : substring_regex ( '.er' , 'Lampe-tempête PermaLux') Résultat : ker Exemple : substring_regex ( '.er' , 'Lampe-tempête PermaLux' , 1 , 2 ) Résultat : ter floor ( expression_numérique ) Renvoie le plus grand entier inférieur ou égal à "expression_numérique". Exemple : floor ( 3.22 ) Résultat : 3 Exemple : floor ( -1.23 ) Résultat : -2 width-bucket ( expression_numerique ,  valeur_min ,  valeur_max ,  numéro_du_compartiment ) Pour une expression données, cette fonction renvoie le numéro du compartiment dans lequel la valeur de cette expression tomberait après son évaluation. Exemple : width-bucket ( quantité ,  100 ,  5000 ,  10 ) Résultat :Renvoie, pour chaque ligne, le numéro de compartiment(de 0 à 11) pour la valeur Quantité en cours. Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( expression_numérique ) Cette fonction trigonométrique renvoie le sinus de l'argument, où l'argument est un angle exprimé en radians. Exemple : sin ( 0.1667 * 3.1415 ) Résultat : 0,5 cos ( expression_numérique ) Cette fonction trigonométrique renvoie le cosinus de l'argument, où l'argument est un angle exprimé en radians. Exemple : cos ( 0.3333 * 3.1415 ) Résultat : 0,5 tan ( expression_numérique ) Cette fonction trigonométrique renvoie la tangente de l'argument, où l'argument est un angle exprimé en radians. Exemple : tan ( 0.25 * 3.1415 ) Résultat : 1 arccos ( expression_numérique ) Cette fonction trigonométrique renvoie l'arc cosinus de l'argument, où l'argument est une valeur entre -1 et 1 et le résultat est une valeur exprimée en radians. Exemple : arccos ( -1 ) Résultat : 3,1415 arcsin ( expression_numérique ) Cette fonction trigonométrique renvoie l'arc sinus de l'argument, où l'argument est une valeur entre -1 et 1 et le résultat est une valeur exprimée en radians. Exemple : arcsin ( 0 ) Résultat : 3,1415 Cette fonction trigonométrique renvoie l'arc tangente de l'argument, où l'argument est une valeur entre -1 et 1 et le résultat est une valeur exprimée en radians. arctan ( expression_numérique ) Exemple : arctan ( 0 ) Résultat : 3,1415 coshyp ( expression_numérique ) Cette fonction trigonométrique renvoie le cosinus hyperbolique de l'argument, où l'argument est un angle exprimé en radians. Exemple : coshyp ( 0 ) Résultat : 1 sinhyp ( expression_numérique ) Cette fonction trigonométrique renvoie le sinus hyperbolique de l'argument, où l'argument est un angle exprimé en radians. Exemple : sinhyp ( 0 ) Résultat : 0 tanhyp ( expression_numérique ) Cette fonction trigonométrique renvoie la tangente hyperbolique de l'argument, où l'argument est un angle exprimé en radians. Exemple : tanhyp ( 0 ) Résultat : 0
Extensions OLAP SQL-99 cube cube ( liste_référence_groupement_colonne ) Il s'agit d'une clause de regroupement "groupe by" qui produit une liste contenant un ensemble de groupements pour toutes les combinaisons réalisables à partir des colonnes de groupement figurant dans "liste_référence_groupement_colonnes". rollup rollup ( liste_référence_groupement_colonne ) Il s'agit d'une clause de regroupement "group by" qui produit une liste contenant un ensemble de groupements pour chaque sous-liste appropriée de "liste_référence_groupement_colonnes" en déposant un par un des éléments depuis la droite. grouping sets grouping sets ( liste_ensemble_groupement ) Il s'agit d'une clause de regroupement "group by" indiquant les ensembles multiples qui serviront au groupement. rank rank () Calcule le classement d'une ligne à l'intérieur d'une partition, où le classement de la ligne X correspond à 1 plus le nombre de lignes qui précèdent X et qui ne sont pas des homologues de celle-ci. dense_rank dense_rank () Calcule le classement dense des lignes à l'intérieur d'une partition, où le classement de la ligne X est 1 (un) plus le nombre de lignes distinctes qui précèdent X. percent_rank percent_rank () Calcule le classement en pourcentage de la ligne à l'intérieur de la partition, où le classement en pourcentage de la ligne X correspond à (XY - 1) / (AB - 1) et où XY est le classement de X et AB le nombre de lignes dans la partition. row_number row_number () Calcule le numéro séquentiel d'une ligne à l'intérieur de sa partition, en commençant par 1 pour la première ligne. ntile ntile ( expression_numérique ) Divise un ensemble de données ordonné en un certain nombre de compartiments, comme indiqué par "expression_numérique", et assigne le numéro de compartiment approprié à chaque ligne.