Fonctions simples

Les fonctions simples peuvent être utilisées dans des clauses SELECT, OVER, WHERE, ORDER BY, GROUP BY et HAVING de requêtes RAQL. En règle générale, elles changent le type de données des valeurs dans les colonnes, extraient une parte de ces valeurs ou transforment des valeurs d'une manière ou d'une autre.

Les fonctions simples s'appliquent individuellement aux valeurs d'une ligne sans accéder aux valeurs des autres lignes et renvoient une seule valeur.

Fonction

Description

column_name(Any col_1, Any col_2, ..., Any col_n, Number index)

column_name(Any col)

Renvoie la valeur de colonne à la position index à partir des colonnes col_1, col_2, ..., col_n. L'index est arrondi s'il ne s'agit pas d'une valeur entière et n'est pas requis si une seule colonne est utilisée.

column_type(Any col_1, Any col_2, ..., Any col_n, Number index)

column_type(Any col)

Renvoie le nom de colonne à la position index à partir des colonnes col_1, col_2, ..., col_n. L'index est arrondi s'il ne s'agit pas d'une valeur entière et n'est pas requis si une seule colonne est utilisée.

custom_month(String col-or-expr)

Extrait le mois des dates au format EEE MMM dd HH:mm:ss z yyyy et renvoie le numéro du mois sous forme de nombre entier. Cette fonction est basée sur les noms des mois en anglais.

dayOfWeek(Date col-or-expr)

dayOfWeek(String col-or-expr)

dayOfWeek(Long col-or-expr)

Convertit les valeurs de cette colonne ou expression en date et renvoie le jour de la semaine sous forme de nombre entier [1 - 7]. Ce nombre est spécifique à la langue locale du serveur MashZone NextGen. Par exemple, le jour 1 est le dimanche aux États-Unis, mais le lundi en France.

epoc_sec_to_date

Représente en interne la notation Java de l'heure en millisecondes depuis minuit, le 1er janvier 1970 UTC.

  • Conversion des secondes (pas des millisecondes !) depuis l'heure de référence ci-dessus jusqu'à ce jour.

  • Trois variantes de cette fonction utilisant des valeurs chaîne, double ou long en entrée.

Exemples

  • epoc_sec_to_date(‘123456‘)

  • epoc_sec_to_date(123456.00)

  • epoc_sec_to_date(123456)

extract_date(Date dt, String field)

Extrait la portion de la date ou de l'heure des valeurs de cette colonne ou expression identifiée par le paramètre dt. Les valeurs de champ valides sont les suivantes :

  • day

  • day-of-week

  • hour

  • minute

  • month

  • monthname

  • quarter

  • second

  • week

  • year

extract_hour(Date dt)

extract_hour(String dt)

extract_hour(Long dt)

Extrait la portion correspondant aux heures de la date et de l'heure dans la colonne ou l'expression qui est identifiée par le paramètre dt.

extract_minute(Date dt)

extract_minute(String dt)

extract_minute(Long dt)

Extrait la portion correspondant aux minutes de la date et de l'heure dans la colonne ou l'expression qui est identifiée par le paramètre dt.

extract_month(Date dt)

extract_month(String dt)

extract_month(Long dt)

Extrait la portion correspondant au mois de la date et de l'heure dans la colonne ou l'expression qui est identifiée par le paramètre dt.

extract_second(Date dt)

extract_second(String dt)

extract_second(Long dt)

Extrait la seconde portion de la date et de l'heure dans la colonne ou l'expression qui est identifiée par le paramètre dt.

extract_week(Date dt)

extract_week(String dt)

extract_week(Long dt)

Extrait la portion correspondant à la semaine de la date et de l'heure dans la colonne ou l'expression qui est identifiée par le paramètre dt.

extract_year(Date dt)

extract_year(String dt)

extract_year(Long dt)

Extrait la portion correspondant à l'année de la date et de l'heure dans la colonne ou l'expression qui est identifiée par le paramètre dt.

format_date(Date value)

format_date(Date value, String datePattern)

format_date(Date value, String datePattern, String timeZone)

Convertit une valeur de date en représentation sous forme de chaîne dans un format cible donné et un fuseau horaire cible.

  • datePattern peut correspondre à ‘short', ‘medium', ‘long', ‘full' ou à tout format de date accepté par SimpleDateFormat de Java. La variante sans le paramètre datePattern utilise ce format : yyyy-MM-dd''T''HH:mm:ss.SSSZ

  • timeZone peut correspondre à n'importe quel ID de fuseau horaire compris par la méthode Java TimeZone.getTimeZone. Pour plus de détails, consultez la documentation Java correspondante. Les variantes de cette fonction sans paramètre timeZone utilisent le fuseau horaire configuré pour le traitement de flux.

Exemples

  • format_date(value)

  • format_date(value, 'yyyy-MM-dd')

  • format_date(value, 'h:mm a', 'GMT-08:00')

  • format_date(value, 'HH:mm:ss', 'Europe/Berlin')

format_date (dateColumn, datePattern)

Correspond à format_date(dateColum, datePattern, 'GMT')

format_date (dateColumn)

Correspond à format_date(dateColum, ‘yyyy-MM-dd'T'HH:mm:ss.SSSZ', ‘GMT')

geo_distance(String column-or-lat1, String column-or-long1, String column-or-lat2, String column-or-long2)

Calcule la distance entre deux emplacements identifiés par leur latitude et leur longitude. Habituellement, un jeu de coordonnées est fourni à partir de deux colonnes ou expressions dans les données et l'autre est fourni sous forme de valeurs littérales.

Si une valeur de paramètre est nulle, cette fonction retourne une valeur nulle.

matches(String col-or-expr, String pattern)

Détermine si une chaîne correspondant à l'expression régulière dans pattern existe anywhere au sein des valeurs de la colonne ou de l'expression. La correspondance est sensible à la casse. Renvoie une valeur booléenne (true ou false).

Par exemple :

where matches(firstname,'ra[n|l]')='true'

Correspond à Frank, Gerald ou Randy dans la colonne firstname. Pour des correspondances exactes d'expressions régulières, sans aucun caractère générique implicite, reportez-vous à la fonction regex.

nvl(String col-or-expr, String str)

nvl(Date col-or-expr, String str)

nvl(Number col-or-expr, String str)

Remplace les valeurs nulles dans la colonne ou l'expression indiquée par la valeur de chaîne précisée.

Remarque : Dans les versions précédentes, les colonnes avec des chaînes contenant seulement des caractères blancs (espace, tabulation, etc.) étaient traitées comme des valeurs nulles.

Depuis la version 3.8, les colonnes avec des chaînes ne sont considérées comme nulles que si elles ne contiennent aucune valeur ou si elles contiennent une chaîne vide.

project(Xcol_1, X col_2, ..., X col_n, Number index)

Renvoie la valeur à la position index des colonnes col_1, col_2, ..., col_n d'un type commun X. L'index est arrondi s'il ne s'agit pas d'une valeur entière.

quarter(Date col-or-expr)

quarter(String col-or-expr)

quarter(Long col-or-expr)

Convertit les valeurs de cette colonne ou expression en date et renvoie le numéro du trimestre sous forme de nombre entier.

regex(String col-or-expr, String pattern)

Détermine si une chaîne correspondant à l'expression régulière dans pattern existe au sein des valeurs de la colonne ou de l'expression, tel qu'indiqué. La correspondance est sensible à la casse. Renvoie une valeur booléenne (true ou false).

Remarque : Cette fonction n'ajoute aucun caractère générique implicite à l'expression régulière. Pour trouver une chaîne anywhere parmi les valeurs dans les colonnes, utilisez la fonction matches.

Par exemple :

where regex(firstname,'ra[n|l]')=true

Correspond à Ralph ou Randy dans la colonne firstname, mais pas à Frank ou Gerald.

split_part(String col-or-expr, String delim, Integer part)

split_part(String col-or-expr, Character delim, Integer part)

Renvoie la nième part des valeurs de cette colonne ou expression lorsque chaque valeur est divisée en parties à chaque délimiteur défini dans delim. Par exemple :

split_part("INV:2012:GHI345",":",3)

Renvoie la chaîne "GHI345".

split_regex((String col-or-expr, String pattern, Integer part)

Cette fonction est identique à split_part, sauf que le délimiteur utilisé pour diviser les valeurs de la colonne à partir de pattern est une expression régulière.

time_mask(Date column, String mask)

time_mask(String column, String mask)

Convertit la valeur de cette colonne ou expression en date et heure, si nécessaire, au format yyyy-MM-dd:HH:mm:ss.

Remarque : Si les valeurs dans la colonne ne contiennent pas d'heures, l'heure est réglée sur 00:00:00.

Cette fonction extrait la portion de la date et de l'heure au travers de la partie correspondant à l'heure identifiée par le masque.

Les masques valides comprennent les suivants :

  • y = renvoie seulement l'année.

  • M = renvoie l'année et le mois.

  • d = renvoie l'année, le mois et le jour.

  • H = renvoie la date complète et les heures.

  • m = renvoie la date complète, les heures et les minutes.

  • s = renvoie la date et l'heure complètes.

to_date(String value)

to_date(String value, String datePattern)

to_date(String value, String datePattern, String timeZone)

Convertit une valeur sous forme de chaîne en date.

datePattern, s'il est présent, correspond à n'importe quel format accepté par la classe Java SimpleDateFormat. Si aucun format n'est précisé, cette fonction peut nuire aux performances, car elle tente de convertir la chaîne par itération dans les formats de date suivants :

  • yyyy-MM-dd HH:mm:ss.SSS

  • yyyy-MM-dd HH:mm:ss

  • yyyy-MM-dd'T'HH:mm:ss.SSSXXX

  • yyyy-MM-dd'T'HH:mm:ss.SSS

  • yyyy-MM-dd'T'HH:mm:ssXXX

  • yyyy-MM-dd'T'HH:mm:ss

  • M/dd/yy ou format court pour la langue locale actuelle

  • MMMM d, yyyy ou format long pour la langue locale actuelle

  • EEEE, MMMM d, yyyy ou format complet pour la langue locale actuelle

  • EEE MMM d HH:mm:ss z yyyy

  • EEE, d MMM yyyy HH:mm:ss Z

  • dd.MM.yyyy HH:mm:ss

  • yyyy-MM-dd

  • dd-MM-yyyy

  • dd.MM.yy

  • MM/dd/yy

    Utilisez le paramètre datePattern pour définir le format de date et d'heure utilisé dans les valeurs de cette colonne.

Remarque : Pour plus d'informations sur les formats de date, reportez-vous à la classe Java SimpleDateFormat.

timeZone peut correspondre à n'importe quel ID de fuseau horaire compris par la méthode Java TimeZone.getTimeZone. Pour plus de détails, consultez la documentation Java correspondante. Les variantes de cette fonction sans paramètre timeZone utilisent le fuseau horaire configuré pour le traitement de flux.

truncate(Number col-or-expr, Number decimals)

Pour les valeurs ou expressions numériques, cette fonction tronque le nombre au nombre de décimales indiqué. Si le paramètre decimals est omis, elle tronque le nombre à zéro décimale.