Fonctions Régulières
S'applique À : WatchGuard Advanced EPDR
Les fonctions régulières agissent séparément sur chaque ligne d'une requête SQL. Avec les fonctions régulières, le résultat de la fonction d'une ligne ne dépend pas des autres lignes.
Dans l'outil Requête SQL Avancée, les fonctions régulières présentent les caractéristiques suivantes :
- Typage Fort — Contrairement à SQL standard, WatchGuard Endpoint Security n'effectue pas de conversions implicites entre les types. Chaque fonction fonctionne pour un ensemble spécifique de types. Vous devez ainsi parfois utiliser des fonctions de conversion de type.
- Élimination des Sous-expressions Communes — Toutes les expressions d'une requête possédant le même AST (le même enregistrement ou le même résultat d'analyse syntaxique) sont considérées comme possédant des valeurs identiques. Ces expressions sont concaténées et exécutées une seule fois. Les sous-requêtes identiques sont également éliminées de cette manière.
- Types de Résultats — Toutes les fonctions retournent une seule valeur en tant que résultat (pas de valeurs multiples ni de valeurs nulles). Le type de résultat est généralement défini uniquement par les types d'arguments et non par les valeurs.
- Constantes — Pour des raisons de simplicité, certaines fonctions ne peuvent fonctionner qu'avec des constantes pour certains arguments. Par exemple, l'argument de droite de l'opérateur LIKE doit être une constante. La quasi-totalité des fonctions retournent une constante pour des arguments constants. Les fonctions qui génèrent des nombres aléatoires constituent une exception. La fonction now retourne des valeurs différentes pour les requêtes exécutées à différents moments. Le résultat est considéré comme une constante, car la constance est importante uniquement au sein d'une requête donnée. Une expression constante est également considérée comme une constante (par exemple, la moitié droite de l'opérateur LIKE peut être élaborée à partir de plusieurs constantes).
- Traitement des NULL — Si au moins l'un des arguments de la fonction est NULL, le résultat de la fonction est également NULL, sauf dans les fonctions présentant des indications contraires.
- Constance — Les fonctions ne peuvent pas modifier la valeur de leurs arguments. Les éventuelles modifications sont retournées en tant que résultat. C'est pourquoi le résultat du calcul de fonctions distinctes ne dépend pas de l'ordre dans lequel ces fonctions figurent dans la requête.
- Gestion des Erreurs — Certaines fonctions peuvent générer une exception si les données sont invalides. Dans ce cas, la requête est annulée et retourne un message d'erreur au client.
- Évaluation des Arguments — Dans la quasi-totalité des langages de programmation, certains arguments peuvent ne pas être évalués avec certains opérateurs, par exemple,&& || et ?:. Dans l'outil Requête SQL Avancée, les arguments des fonctions (opérateurs) sont toujours évalués. En effet, des parties entières des colonnes sont évaluées simultanément au lieu que chaque ligne soit calculée séparément.
Les fonctions les plus importantes sont les suivantes :
- Fonctions Arithmétiques
- Fonctions de Comparaison
- Fonctions Logiques
- Fonctions de Conversion de Type
- Fonctions permettant de Travailler avec des Chaînes
- Fonctions de Recherche dans les Chaînes
- Fonctions de Remplacement de Chaînes
- Fonctions Mathématiques
- Fonctions d'Arrondi
- Fonctions de Génération de Nombres Aléatoires
- Fonctions d'Encodage
- Fonctions permettant de Travailler avec les URL
- Fonctions permettant de Travailler avec les Adresses IP
- Fonctions permettant de Travailler avec les arguments Nullable
Fonctions Arithmétiques
Pour toutes les fonctions arithmétiques, le type de résultat est calculé comme le plus petit type de nombre auquel le résultat correspond, si un tel type existe. Le minimum est déterminé simultanément en fonction du nombre de bits, du caractère signé d'un nombre ou de la nature à virgule flottante d'un nombre. Si le nombre de bits est insuffisant, le type de bit le plus élevé est retenu.
Les fonctions arithmétiques fonctionnent pour n'importe quelle paire de types parmi UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32 et Float64.
| Fonction | Description |
|---|---|
|
plus(a, b) opérateur a + b |
Calcule la somme de deux nombres. Vous pouvez également ajouter des nombres entiers à une date (Date) ou à une date et une heure (DateTime). Dans le cas d'une date, lorsque vous ajoutez un entier, elle correspond au nombre de jours ajoutés. Pour une date avec heure, lorsque vous ajoutez un entier, il correspond au nombre de secondes ajoutées. |
|
minus(a, b) opérateur a - b |
Calcule la différence entre deux nombres. Le résultat est toujours signé. Vous pouvez également calculer des nombres entiers à partir d'une date (Date) ou d'une date avec heure (DateTime). |
|
divide (a, b) opérateur a / b |
Calcule le quotient de nombres. Le type de résultat est toujours un type à virgule flottante. Il ne s'agit pas d'une division entière. Pour la division de nombres entiers, utilisez la fonction intDiv. Lorsque vous divisez par zéro, vous obtenez inf, -inf ou nan. |
|
intDiv (a, b) |
Calcule le quotient de nombres. Divise en nombres entiers et arrondit à la valeur inférieure (par valeur absolue). Une exception est retournée lors d'une division par zéro ou d'une division d'un nombre négatif minimal par moins un. |
|
intDivOrZero (a, b) |
Diffère de intDiv, dans le sens où zéro est retourné lorsqu'il est divisé par zéro ou lorsqu'un nombre négatif minimal est divisé par moins un. |
|
module (a, b) opérateur a % b |
Calcule le reste suite à une division. Si les arguments sont des nombres à virgule flottante, ils sont convertis préalablement en nombres entiers. Le reste revêt une définition identique à celle du C++. La division tronquée est utilisée pour les nombres négatifs. Une exception est retournée lorsqu'il est divisé par zéro ou lorsqu'un nombre négatif minimal est divisé par moins un. |
|
negate(a) opérateur -a |
Calcule un nombre avec le signe opposé. Le résultat est toujours signé. |
|
abs (a) |
Calcule la valeur absolue du nombre(a). En d'autres termes, si a < 0, -a est retourné. Pour les types non signés, il ne fait rien. Pour les types d'entiers signés, un nombre non signé est retourné. |
|
gcd (a, b) |
Retourne le plus grand diviseur commun des nombres. Une exception est générée lorsqu'il est divisé par zéro ou lorsqu'un nombre négatif minimal est divisé par moins un. |
|
lcm(a, b) |
Retourne le plus petit multiple commun des nombres. Une exception est générée lorsqu'il est divisé par zéro ou lorsqu'un nombre négatif minimal est divisé par moins un. |
Fonctions de Comparaison
Les fonctions de comparaison retournent toujours 0 ou 1 (Uint8). Les types suivants peuvent être comparés :
- Chiffres
- Chaînes de caractères (String) et chaînes de caractères de longueur fixe (FixedString(N))
- Dates (Date)
- Dates avec heures (DateTime)
Par exemple, vous ne pouvez pas comparer une date avec une chaîne. Vous devez utiliser une fonction pour convertir la chaîne en date, ou vice versa.
Les chaînes sont comparées par octets. Une chaîne courte est plus petite que toutes les chaînes qui commencent par elle et qui contiennent au moins un caractère supplémentaire.
Les opérateurs de comparaison sont les suivants :
- Equals — a = b et a == b
- NotEquals — a != b et a <> b
- Less — a < b
- Greater — a > b
- LessOrEquals — a <= b
- GreaterOrEquals — a >= b
Fonctions Logiques
Les fonctions logiques acceptent tous les types numériques, mais retournent un nombre UInt8 égal à 0 ou 1.
Une valeur nulle en argument est considérée comme « fausse », tandis que toute valeur non nulle est considérée comme « vraie ».
-
AND — AND
-
OR — OR
-
Not — NOT
-
Xor — XOR
Fonctions de Conversion de Type
Les conversions de base prises en charge sont les suivantes :
-
Conversion vers des types de données non signés — toUInt8, toUInt16, toUInt32 et toUInt64
-
Conversion vers des types de données signés — toInt8, toInt16, toInt32, toInt64, toFloat32, toFloat64, toDate et toDateTime
-
Conversion à zéro en cas d'erreur — toUInt8OrZero, toUInt16OrZero, toUInt32OrZero, toUInt64OrZero, toInt8OrZero, toInt16OrZero, toInt32OrZero, toInt64OrZero, toFloat32OrZero, toFloat64OrZero, toDateOrZero et toDateTimeOrZero
-
Conversion en valeur nulle en cas d'erreur — toUInt8OrNull, toUInt16OrNull, toUInt32OrNull, toUInt64OrNull, toInt8OrNull, toInt16OrNull, toInt32OrNull, toInt64OrNull, toFloat32OrNull, toFloat64OrNull, toDateOrNull et toDateTimeOrNull
Les conversions de types de données plus complexes sont les suivantes :
| Fonction | Description |
|---|---|
|
toDecimal32(value, S), toDecimal64(value, S), toDecimal128(value, S) |
Cette fonction convertit une valeur en décimal de précision S. La valeur peut être un nombre ou une chaîne. Le paramètre S indique le nombre de décimales. |
|
toString |
Cette fonction convertit les nombres, les chaînes (à l'exception des chaînes fixes), les dates (Dates), et les dates avec heures (DateTime). Toutes ces fonctions acceptent un seul argument. Lorsque la fonction convertit à partir d'une chaîne ou depuis une chaîne, la valeur est formatée ou analysée selon les mêmes règles que celle du format séparé par des tabulations (TSV). Si la chaîne ne peut pas être analysée, une exception est retournée et la requête est annulée. Lorsque la fonction convertit des dates en nombres ou inversement, la date correspond au nombre de jours écoulés depuis le début de l'époque Unix (1/1/1970). Les formats de date et de date avec heure pour les fonctions toDate/toDateTime sont les suivants : AAAA-MM-JJ YYYY-MM-DD hh: mm: ss À titre d'exception, lorsque la fonction convertit des types numériques UInt32, Int32, UInt64 ou Int64 en Date et que le nombre est supérieur ou égal à 65536, le nombre est interprété comme un horodatage Unix (et non comme le nombre de jours). Il est ainsi possible de saisir toDate (unix_timestamp), ce qui provoquerait normalement une erreur et nécessiterait de saisir toDate (toDateTime (unix_timestamp)). La conversion entre une date (Date) et une date avec heure (DateTime) s'effectue naturellement (en d'autres termes, elle ajoute une heure nulle ou supprime l'heure). La conversion entre types numériques emploie les mêmes règles que les affectations entre différents types numériques en C++. En outre, la fonction toString de l'argument DateTime peut accepter un second argument String contenant le nom du fuseau horaire. |
|
toFixedString(s, N) |
Cette fonction convertit un argument de type String en un type FixedString(N) (une chaîne de longueur fixe N). N doit être une constante. Si la chaîne possède moins d'octets que N, elle est transmise avec des octets nuls à droite. Si la chaîne possède plus d'octets que N, une exception est retournée. |
|
toStringCutToZero(s) |
Cette fonction accepte un argument de type String ou FixedString. Le String dont le contenu est tronqué au premier octet nul trouvé est retourné. |
|
reinterpretAsUInt8, reinterpretAsUInt16, reinterpretAsUInt32, reinterpretAsUInt64 reinterpretAsInt8, reinterpretAsInt16, reinterpretAsInt32, reinterpretAsInt64 reinterpretAsFloat32, reinterpretAsFloat64 reinterpretAsDate, reinterpretAsDateTime |
Ces fonctions acceptent une chaîne et interprètent les octets placés au début de la chaîne comme un nombre (little endian). Si la chaîne n'est pas assez longue, les fonctions fonctionnent comme si la chaîne était complétée par le nombre nécessaire d'octets nuls. Si la chaîne est plus longue que nécessaire, les octets supplémentaires sont ignorés. Une date (Date) est interprétée comme le nombre de jours depuis le début du temps Unix (1/1/1970), tandis qu'une date avec heure (DateTime) est interprétée comme le nombre de secondes depuis le début du temps Unix. |
|
reinterpretAsString |
Cette fonction accepte un nombre ou une date (Date) ou une date avec heure (DateTime), et retourne une chaîne contenant les octets qui représentent la valeur correspondante au format little endian. Les octets nuls sont supprimés de la fin. Par exemple, une valeur de type UInt32 de 255 est une chaîne d'une longueur d'un octet. |
|
reinterpretAsFixedString |
Cette fonction accepte un nombre, une date (Date) ou une date avec heure (DateTime), et retourne un FixedString contenant les octets qui représentent la valeur correspondante au format little endian. Les octets nuls sont supprimés de la fin. Par exemple, une valeur de type UInt32 de 255 est un FixedString contenant un octet. |
|
CAST(x, t) |
Cette fonction convertit x au type de données t. |
|
toIntervalYear, toIntervalQuarter, toIntervalMonth, toIntervalWeek, toIntervalDay, toIntervalHour, toIntervalMinute, toIntervalSecond |
Cette fonction convertit un argument de type Number en un argument de type Interval (durée). Le type Interval est très utile, car vous pouvez utiliser ce type de données pour effectuer des opérations arithmétiques directement avec Date ou DateTime. |
|
parseDateTimeBestEffort |
Cette fonction analyse un argument de type Number et le convertit en type Date ou DateTime. Contrairement à toDate et toDateTime, parseDateTimeBestEffort peut retourner un format de date plus complexe. |
|
parseDateTimeBestEffortOrNull |
Cette fonction analyse un argument de type Number et le convertit en type Date ou DateTime. Contrairement à toDate et toDateTime, parseDateTimeBestEffort peut retourner un format de date plus complexe. De plus, une valeur nulle est retournée en présence d'un format de date qui ne peut pas être traité. |
|
parseDateTimeBestEffortOrZero |
Cette fonction analyse un argument de type Number et le convertit en type Date ou DateTime. Contrairement à toDate et toDateTime, parseDateTimeBestEffort peut retourner un format de date plus complexe. De même, une date nulle ou une date et heure nulle est retournée en présence d'un format de date qui ne peut pas être traité. |
Fonctions permettant de Travailler avec des Dates et Heures
Toutes les fonctions qui utilisent la date et l'heure et présentent une utilisation logique du fuseau horaire peuvent accepter un deuxième argument facultatif correspondant au fuseau horaire. Seuls les fuseaux horaires qui diffèrent du fuseau horaire UTC d'un nombre entier d'heures sont pris en charge.
| Fonction | Description |
|---|---|
|
toTimeZone |
Convertit une heure (Date) ou une date avec heure (DateTime) au fuseau horaire spécifié. |
|
toYear |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt16 avec le numéro d'année. |
|
toQuarter |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de trimestre. |
|
toMonth |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de mois (1 à 12). |
|
toDayOfYear |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de jour de l'année (1 à 366). |
|
toDayOfMonth |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de jour du mois (1 à 31). |
|
toDayOfWeek |
Convertit une date (Date) ou une date avec heure (DateTime) en un nombre UInt8 avec le numéro du jour de la semaine (lundi est 1 et dimanche est 7). |
|
toHour |
Convertit une date (Date) ou une date avec heure (DateTime) en un nombre UInt8 avec le numéro de l'heure au format 24 heures (0-23). Cette fonction suppose que lorsque les horloges avancent pour passer à l'heure d'été, elles avancent d'une heure et cela se produit à 2 heures du matin. Si l'heure recule, on soustrait une heure à 3 heures du matin. |
|
toMinute |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de la minute de l'heure (0 à 59). |
|
toSecond |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de la seconde dans la minute (0 à 59). Les secondes intercalaires ne sont pas prises en compte. |
|
toUnixTimestamp |
Convertit une date (Date) ou une date avec heure (DateTime) en un horodatage Unix. |
|
toStartOfYear |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au premier jour de l'année. Elle renvoie la date (Date). |
|
toStartOfISOYear |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au premier jour de l'année ISO. Elle renvoie la date (Date). |
|
toStartOfQuarter |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au premier jour du trimestre (1er Janvier, 1er Avril, 1er Juillet ou 1er Octobre). Elle renvoie la date (Date). |
|
toStartOfMonth |
Arrondit une date (Date) ou une date avec heure (DateTime) au premier jour du mois. Elle renvoie la date (Date). |
|
toMonday |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au Lundi le plus proche. Elle renvoie la date (Date). |
|
toStartOfDay |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au début de la journée. |
|
toStartOfHour |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au début de l'heure. |
|
toStartOfMinute |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au début de la minute. |
|
toStartOfFiveMinute |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au début de l'intervalle de cinq minutes. |
|
toStartOfTenMinutes |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au début de l'intervalle de dix minutes. |
|
toStartOfFifteenMinutes |
Arrondit à la valeur inférieure une date (Date) ou une date avec heure (DateTime) au début de l'intervalle de quinze minutes. |
|
toTime |
Convertit une date (Date) ou une date avec heure (DateTime) en une certaine date fixe et préserve l'heure. |
|
toRelativeYearNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro d'année à partir d'un certain point fixe situé dans le passé. |
|
toRelativeQuarterNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro de trimestre à partir d'un certain point fixe situé dans le passé. |
|
toRelativeMonthNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro de mois à partir d'un certain point fixe situé dans le passé. |
|
toRelativeWeekNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro de la semaine, à partir d'un certain point fixe dans le passé. |
|
toRelativeDayNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro de jour à partir d'un certain point fixe situé dans le passé. |
|
toRelativeHourNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro d'heure, à partir d'un certain point fixe dans le passé. |
|
toRelativeMinuteNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro de minute à partir d'un certain point fixe situé dans le passé. |
|
toRelativeSecondNum |
Convertit une date (Date) ou une date avec heure (DateTime) en numéro de seconde à partir d'un certain point fixe situé dans le passé. |
|
toISOYear |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt16 avec le numéro d'année ISO. |
|
toISOWeek |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt8 avec le numéro de semaine ISO. |
|
now |
Accepte zéro argument. Elle renvoie l'heure actuelle au moment de l'exécution de la fonction. Cette fonction retourne une constante. |
|
today |
Accepte zéro argument. La date du jour au moment de l'exécution de la fonction est retournée. Identique à toDate (now ()). |
|
yesterday |
Accepte zéro argument. Elle renvoie la date d'hier au moment de l'exécution de la fonction. Identique à today () - 1. |
|
timeSlot |
L'heure est arrondie à la demi-heure. |
|
toYYYYMM |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt32 avec l'année et le mois (YYYY * 100 + MM). |
|
toYYYYMMDD |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt32 avec l'année et le mois (YYYY * 10000 + MM * 100 + DD). |
|
toYYYYMMDDhhmmss |
Convertit une date (Date) ou une date avec heure (DateTime) en nombre UInt64 avec le numéro d'année et de mois (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). |
|
addYears, addMonths, addWeeks, addDays, addHours, addMinutes, addSeconds, addQuarters |
Cette fonction ajoute un intervalle Date/DateTime à une variable Date/DateTime puis retourne le Date/DateTime. |
|
subtractYears, subtractMonths, subtractWeeks, subtractDays, subtractHours, subtractMinutes, subtractSeconds, subtractQuarters |
Cette fonction soustrait un intervalle Date/DateTime à une variable Date/DateTime puis retourne le Date/DateTime. |
|
dateDiff('unit', t1, t2, [timezone]) |
Retourne la différence entre deux heures exprimée en unit, par exemple hours. t1 et t2 peuvent être au format Date ou DateTime. Si timezone est spécifié, il est appliqué aux deux arguments. Dans le cas contraire, les fuseaux horaires des types de données t1 et t2 sont utilisés. Si les fuseaux horaires diffèrent, le résultat est non spécifié. Valeurs d'unité prises en charge : second, minute, hour, day, week, month, quarter, year. |
|
formatDateTime(Time, Format[, Timezone]) |
Cette fonction formate Time au format spécifié dans la chaîne Format. Pour plus d'informations sur les paramètres du format, accédez à %%. |
Codes de Format de la Fonction formatDateTime
Le tableau suivant décrit les codes de format de la fonction formatDateTime avec des exemples :
| Code | Description | Exemple |
|---|---|---|
|
%C |
Année divisée par 100 et tronquée en nombre entier (00 à 99). |
20 |
|
%d |
Jour du mois complété par un zéro (01 à 31). |
02 |
|
%D |
Date courte MM/DD/YY, équivalente à %m/%d/%y. |
01/07/2023 |
|
%e |
Jour du mois complété par un espace ( 1 à 31) |
2 |
|
%F |
Date courte YYYY-MM-DD, équivalente à %Y-%m-%d. |
2023-01-07 |
|
%H |
Heure au format 24h (00-23). |
22 |
|
%I |
Heure au format 12h (01-12). |
10 |
|
%j |
Jour de l'année (001 à 366). |
007 |
|
%m |
Mois sous forme de nombre décimal (01 à 12). |
01 |
|
%M |
Minute (00 à 59). |
33 |
|
%n |
Caractère nouvelle ligne. '\n'. |
|
|
%p |
AM ou PM. |
PM |
|
%R |
Heure au format 24 heures HH:MM, équivalente à %H:%M. |
22:33 |
|
%S |
Seconde (00 à 59). |
44 |
|
%t |
Caractère tabulation horizontale (‘\t'). |
|
|
%T |
Format d'heure ISO 8601 (HH:MM:SS), équivalent à %H:%M:%S. |
22:33:44 |
|
%u |
Jour de semaine ISO 8601 sous forme de nombre, Lundi correspondant à 1 (1 à 7). |
2 |
|
%V |
Numéro de semaine ISO 8601 (01 à 53). |
01 |
|
%w |
Le jour de la semaine est un nombre décimal, le Dimanche correspondant à 0 (0 à 6). |
2 |
|
%y |
Deux derniers chiffres de l'année (00 à 99). |
23 |
|
%Y |
Année |
2023 |
|
Un signe %. |
|
Fonctions permettant de Travailler avec des Chaînes
Le tableau suivant décrit les fonctions des Chaînes :
| Fonction | Description |
|---|---|
|
empty |
Retourne 1 pour une chaîne vide ou 0 pour une chaîne non vide. Le type de résultat est UInt8. Une chaîne est considérée comme non vide si elle contient au moins un octet, même s'il s'agit d'un espace ou d'un octet nul. |
|
notEmpty |
Retourne 0 pour une chaîne vide ou 1 pour une chaîne non vide. Le type de résultat est UInt8. La fonction fonctionne également pour les tableaux. |
|
length |
Retourne la longueur d'une chaîne de caractères en octets (pas en caractères ni en points de code). Le type de résultat est UInt64. |
|
lengthUTF8 |
Retourne la longueur d'une chaîne en points de code Unicode (et non en caractères) lorsque la chaîne contient un ensemble d'octets constituant un texte encodé au format UTF-8. Si la chaîne ne répond pas à l'exigence UTF-8, elle ne génère pas d'exception. Le type de résultat est UInt64. |
|
char_length, CHAR_LENGTH |
Retourne la longueur d'une chaîne en points de code Unicode (et non en caractères) en supposant que la chaîne contient un ensemble d'octets constituant un texte encodé au format UTF-8. Si cette hypothèse n'est pas satisfaite, aucune exception n'est générée. Le type de résultat est UInt64. |
|
character_length, CHARACTER_LENGTH |
Retourne la longueur d'une chaîne en points de code Unicode (et non en caractères) en supposant que la chaîne contient un ensemble d'octets constituant un texte encodé au format UTF-8. Si cette hypothèse n'est pas satisfaite, aucune exception n'est générée. Le type de résultat est UInt64. |
|
lower, lcase |
Convertit les symboles Latins ASCII d'une chaîne en minuscules. |
|
upper, ucase |
Convertit les symboles Latins ASCII d'une chaîne en majuscules. |
|
lowerUTF8 |
Convertit une chaîne en minuscules en supposant que la chaîne contient un ensemble d'octets constituant un texte encodé au format UTF-8. Elle ne détecte pas la langue. Si la longueur de la séquence d'octets UTF-8 est différente pour les majuscules et les minuscules d'un point de code, le résultat peut être incorrect. Si la chaîne contient un ensemble d'octets qui n'est pas UTF-8, le comportement n'est pas défini. |
|
upperUTF8 |
Convertit une chaîne en majuscules, en supposant que la chaîne contient un ensemble d'octets qui composent un texte codé en UTF-8. Elle ne détecte pas la langue. Si la longueur de la séquence d'octets UTF-8 est différente pour les majuscules et les minuscules d'un point de code, le résultat peut être incorrect. Si la chaîne contient un ensemble d'octets qui n'est pas UTF-8, le comportement n'est pas défini. |
|
isValidUTF8 |
Retourne 1 si l'ensemble d'octets constitue un texte encodé UTF-8 valide, ou 0 dans le cas contraire. |
|
reverse |
Inverse la chaîne (en tant que séquence d'octets). |
|
reverseUTF8 |
Inverse une séquence de points de code Unicode en supposant que la chaîne contient un ensemble d'octets représentant un texte UTF-8. Dans le cas contraire, aucune exception n'est retournée. |
|
concat(s1, s2, ...) |
Concatène les chaînes énumérées dans les arguments, sans séparateur. |
|
concatAssumeInjective(s1, s2, ...) |
Identique à concat. La différence réside dans le fait que vous devez vous assurer que concat (s1, s2, s3) -> s4 est injectif. Il permet d'optimiser la clause GROUP BY. |
|
substring(s, offset, length), mid(s, offset, length), substr(s, offset, length) |
Retourne une sous-chaîne commençant par l'octet de l'index offset et contenant length octets. L'indexation des caractères commence à partir de un (à l'instar de SQL standard). Les arguments offset et length doivent être des constantes. |
|
substringUTF8(s, offset, length) |
Cette condition s'applique également à substring, mais pour les points de code Unicode. Elle part du principe que la chaîne contient un ensemble d'octets représentant un texte encodé au format UTF-8. Si cette hypothèse n'est pas satisfaite, aucune exception n'est générée. |
|
appendTrailingCharIfAbsent(s, c) |
Si la chaîne s contient des caractères, mais ne contient pas le caractère c à la fin, elle ajoute le caractère c à la fin. |
|
convertCharset(s, from, to) |
Retourne la chaîne s qui a été convertie de l'encodage de from à l'encodage de to. |
|
base64Encode(s) |
Encode la chaîne s en base64. |
|
base64Decode(s) |
Décode la chaîne codée en base64 s dans sa chaîne d'origine. En cas d'échec, elle génère une exception. |
|
tryBase64Decode(s) |
Décode la chaîne codée en base64 s dans sa chaîne d'origine. En cas d'échec, une chaîne vide est retournée. |
|
endsWith(s, suffix) |
Retourne 1 si la chaîne se termine par le suffixe spécifié, sinon 0. |
|
startsWith(s, prefix) |
Retourne 1 si la chaîne commence par le préfixe spécifié, sinon 0. |
|
trimLeft(s) |
Retourne une chaîne qui supprime les caractères d'espacement du côté gauche. |
|
trimRight(s) |
Renvoie une chaîne qui supprime les caractères d'espacement sur le côté droit. |
|
trimBoth(s) |
Retourne une chaîne qui supprime les caractères d'espacement des deux côtés. |
Fonctions de Recherche dans les Chaînes
Pour toutes ces fonctions, la recherche est par défaut sensible à la casse. Il existe des variantes distinctes pour la recherche insensible à la casse. Le tableau suivant décrit les fonctions de recherche :
| Fonction | Description |
|---|---|
|
position(haystack, needle), locate(haystack, needle) |
Recherche de la sous-chaîne needle dans la chaîne haystack. La position (en octets) de la sous-chaîne trouvée est retournée en commençant par 1, ou 0 est retourné si la sous-chaîne est introuvable. Pour une recherche insensible à la casse, utilisez la fonction positionCaseInsensitive. |
|
positionUTF8(haystack, needle) |
Identique à position, mais la position est retournée en points de code Unicode lorsque la chaîne contient un ensemble d'octets représentant un texte encodé au format UTF-8. Si cette exigence n'est pas satisfaite, aucune exception n'est générée. Pour une recherche insensible à la casse, utilisez la fonction positionCaseInsensitiveUTF8. |
|
multiSearchFirstPosition(haystack, [needle1, needle2, ..., needlen]) |
Identique à position, mais retourne le décalage le plus à gauche de la chaîne haystack qui correspond à une partie de needle. Pour une recherche insensible à la casse et une recherche en format UTF-8, utilisez les fonctions suivantes : multiSearchFirstPositionCaseInsensitive multiSearchFirstPositionUTF8 multiSearchFirstPositionCaseInsensitiveUTF8 |
|
multiSearchFirstIndex(haystack, [needle1, needle2, ..., needlen]) |
Retourne la position i (à partir de 1) de needle figurant la plus à gauche dans haystack, sinon 0. Pour une recherche insensible à la casse et une recherche en format UTF-8, utilisez les fonctions suivantes : multiSearchFirstIndexCaseInsensitive multiSearchFirstIndexUTF8 multiSearchFirstIndexCaseInsensitiveUTF8 |
|
multiSearchAny(haystack, [needle1, needle2, ..., needlen]) |
Retourne 1 si au moins une chaîne needle correspond à la chaîne haystack, sinon 0. Pour une recherche insensible à la casse ou/et au format UTF-8, utilisez les fonctions suivantes : multiSearchAnyCaseInsensitive, multiSearchAnyUTF8, multiSearchAnyCaseInsensitiveUTF8. Dans toutes les fonctions multiSearch *, le nombre de paramètres needle doit être inférieur à 28. |
|
match(haystack, pattern) |
Vérifie si la chaîne correspond à l'expression régulière du modèle. La syntaxe des expressions régulières re2 est plus limitée que celle des expressions régulières Perl. Retourne 0 en l'absence de correspondance, ou 1 en cas de correspondance. Le symbole barre oblique inverse (\) est utilisé pour échapper l'expression régulière. Ce même symbole permet d'échapper les chaînes littérales. Pour échapper le symbole dans une expression régulière, vous devez saisir deux barres obliques inverses (\\) dans une chaîne littérale. L'expression régulière fonctionne avec la chaîne comme s'il s'agissait d'un ensemble d'octets. L'expression régulière ne peut pas contenir d'octets nuls. Pour les modèles permettant de rechercher des sous-chaînes dans une chaîne, il est préférable d'utiliser LIKE ou position, car ils fonctionnent plus rapidement. |
|
multiMatchAny(haystack, [pattern1, pattern2, ..., patternn]) |
Vérifie si la chaîne correspond à l'expression régulière du modèle. 0 est retourné si aucune des expressions régulières ne correspond et 1 si l'un des modèles correspond. Pour les modèles permettant de rechercher des sous-chaînes dans une chaîne, il est préférable d'utiliser multiSearchAny, car il fonctionne plus rapidement. La longueur de l'une des chaînes haystack doit être inférieure à 232 octets. Dans le cas contraire, une exception est générée. |
|
multiMatchAnyIndex(haystack, [pattern1, pattern2, ..., patternn]) |
Vérifie si la chaîne correspond à l'expression régulière du modèle. 0 est retourné si aucune des expressions régulières ne correspond et 1 si l'un des modèles correspond. Les index correspondant à haystack sont retournés. |
|
multiFuzzyMatchAny(haystack, distance, [pattern1, pattern2, ..., patternn]) |
Identique à multiMatchAny, mais 1 est retourné si un modèle correspond à haystack à une distance d'édition constante. Cette fonction est en mode expérimental et peut être très lente. |
|
multiFuzzyMatchAnyIndex(haystack, distance, [pattern1, pattern2, ..., patternn]) |
Identique à multiFuzzyMatchAny, mais les index correspondant à haystack à une distance d'édition constante est retourné. Les fonctions multiFuzzyMatch * ne prennent pas en charge les expressions régulières UTF-8. Elles sont traitées comme des octets. |
|
extract(haystack, pattern) |
Extrait un fragment d'une chaîne à l'aide d'une expression régulière. Si haystack ne correspond pas au regex pattern, une chaîne vide est retournée. Si le regex ne contient pas de sous-modèles, le fragment qui correspond à l'ensemble du regex est traité. Dans le cas contraire, le fragment correspondant au premier sous-modèle est traité. |
|
like(haystack, pattern), haystack LIKE pattern operator |
Vérifie si une chaîne correspond à une expression régulière simple. L'expression régulière peut contenir les suivants :
Utilisez la barre oblique inverse (\) pour échapper les métasymboles. Le symbole barre oblique inverse (\) est utilisé pour échapper l'expression régulière. Ce même symbole permet d'échapper les chaînes littérales. Pour échapper le symbole dans une expression régulière, vous devez saisir deux barres obliques inverses (\\) dans une chaîne littérale. Pour les expressions régulières telles que %needle%, le code est plus optimal et fonctionne aussi rapidement que la fonction position. Pour les autres expressions régulières, le code est identique à celui de la fonction match. |
|
notLike(haystack, pattern), haystack NOT LIKE pattern operator |
Filtre les entrées qui ne correspondent pas à un modèle spécifié. L'expression régulière peut contenir les suivants :
Utilisez la barre oblique inverse (\) pour échapper les métasymboles. |
Fonctions de Remplacement de Chaînes
Le tableau suivant décrit les fonctions de remplacement des chaînes :
| Fonction | Description |
|---|---|
|
replaceOne(haystack, pattern, replacement) |
Remplace la première occurrence (si elle existe) de la sous-chaîne pattern dans haystack par la sous-chaîne replacement. pattern et replacement doivent être des constantes. |
|
replaceAll(haystack, pattern, replacement), replace(haystack, pattern, replacement) |
Remplace toutes les occurrences de la sous-chaîne pattern dans haystack par la sous-chaîne replacement. |
|
replaceRegexpOne(haystack, pattern, replacement) |
Remplacement à l'aide de l'expression régulière pattern. Une expression régulière re2. Elle remplace uniquement la première occurrence, le cas échéant. Un modèle peut être spécifié en tant que replacement. Ce modèle peut inclure les substitutions \0 - \9. La substitution \0 inclut l'ensemble de l'expression régulière. Les substitutions \1 - \9 correspondent aux numéros des sous-modèles. Pour utiliser le caractère \ dans un modèle, utilisez un autre \ pour l'échapper. N'oubliez pas qu'une chaîne littérale nécessite un échappement supplémentaire. Par exemple, la fonction suivante copie une chaîne dix fois : SELECT replaceRegexpOne ('Hello, World!', '. *', '\\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0) AS res Résultat : Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! ¦ |
|
replaceRegexpAll(haystack, pattern, replacement) |
Remplacement à l'aide de l'expression régulière pattern. Elle remplace toutes les occurrences. Exemple : SELECT replaceRegexpAll('Hello, World!', '.', '\\0\\0') AS res HHeelllloo,, WWoorrlldd!! Si une expression régulière fonctionne sur une sous-chaîne vide, le remplacement n'est pas effectué plus d'une fois. Exemple : SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res ici : Hello, World! |
|
regexpQuoteMeta(s) |
La fonction ajoute une barre oblique inverse avant certains caractères prédéfinis de la chaîne. Caractères prédéfinis : '0', '\', '|', '(', ')', '^', '$', '.', '[', ']', '?', '*', '+', '{', ':', '-'. Cette mise en œuvre diffère de celle de re2. Il échappe l'octet zéro en tant que \0 au lieu de \x00, et échappe uniquement les caractères nécessaires. |
Fonctions Mathématiques
Toutes ces fonctions retournent un nombre Float64. La précision du résultat est proche de la précision maximale possible, mais il arrive qu'elle ne corresponde pas au nombre représentable par la machine le plus proche du nombre réel correspondant.
| Fonction | Description |
|---|---|
|
e() |
Retourne un nombre Float64 proche du nombre e. |
|
pi() |
Retourne un nombre Float64 proche du nombre π. |
|
exp(x) |
Accepte un argument numérique et retourne un nombre Float64 proche de l'exposant de l'argument. |
|
log(x), ln(x) |
Accepte un argument numérique et retourne un nombre Float64 proche du logarithme naturel de l'argument. |
|
exp2(x) |
Accepte un argument numérique et renvoie un nombre Float64 proche de 2 à la puissance x. |
|
log2(x) |
Accepte un argument numérique et retourne un nombre Float64 proche du logarithme binaire de l'argument. |
|
exp10(x) |
Accepte un argument numérique et renvoie un nombre Float64 proche de 10 à la puissance x. |
|
log10(x) |
Accepte un argument numérique et retourne un nombre Float64 proche du logarithme décimal de l'argument. |
|
sqrt(x) |
Accepte un argument numérique et retourne un nombre Float64 proche de la racine carrée de l'argument. |
|
cbrt(x) |
Accepte un argument numérique et retourne un nombre Float64 proche de la racine cubique de l'argument. |
|
erf(x) |
Si x est non négatif, erf constitue la probabilité qu'une variable aléatoire présentant une distribution normale avec un écart-type s prenne la valeur séparée de la valeur escomptée par plus de x. |
|
erfc(x) |
Accepte un argument numérique et retourne un nombre Float64 proche de 1 - erf (x), mais sans perte de précision pour les grandes valeurs de x. |
|
lgamma(x) |
Le logarithme de la fonction gamma. |
|
tgamma(x) |
Fonction gamma. |
|
sin(x) |
Sinus. |
|
cos(x) |
Cosinus. |
|
tan(x) |
Tangente. |
|
asin(x) |
Cosinus. |
|
acos(x) |
Arc-cosinus. |
|
atan(x) |
Arc-tangente.. |
|
pow(x, y), power(x, y) |
Reçoit deux arguments numériques x et y et retourne un nombre Float64 proche de x à la puissance y. |
|
intExp2 |
Accepte un argument numérique et retourne un nombre UInt64 proche de 2 puissance x. |
|
intExp10 |
Accepte un argument numérique et retourne un nombre UInt64 proche de 10 puissance x. |
Fonctions d'Arrondi
| Fonction | Description |
|---|---|
|
floor(x[, N]) |
Retourne le plus grand nombre rond inférieur ou égal à x. Un nombre rond est un multiple de 1/10N ou le nombre le plus proche du type de données approprié si 1 / 10N n'est pas exact. N est une constante entière (paramètre facultatif). Par défaut, elle est égale à zéro. Le nombre peut ainsi être arrondi à un entier. N peut être négatif. Exemples : floor (123.45, 1) = 123.4 floor (123.45, -1) = 120. x correspond à n'importe quel type numérique. Le résultat est un nombre de même type. Pour les arguments entiers, il est logique d'arrondir avec une valeur N négative. Pour N non négatif, la fonction ne fait rien. |
|
ceil(x[, N]), ceiling(x[, N]) |
Retourne le plus petit nombre rond supérieur ou égal à x. Dans tous les autres cas, il s'agit de la même fonction que floor. |
|
round(x[, N]) |
Arrondit x à un nombre spécifié de décimales(N). Elle arrondit le nombre à l'entier pair le plus proche. Lorsque le nombre donné se situe à égale distance des nombres environnants, la fonction retourne le nombre possédant le chiffre pair le plus proche. Paramètres :
La valeur retournée est le nombre arrondi du même type que le nombre d'entrée. |
|
roundToExp2(num) |
Accepte un nombre. Si le nombre est inférieur à un, 0 est retourné. Dans le cas contraire, elle arrondit le nombre vers le bas au degré deux le plus proche (entier non négatif). |
Fonctions de Génération de Nombres Aléatoires
Des générateurs non cryptographiques de nombres pseudo-aléatoires sont employés. Toutes les fonctions acceptent zéro ou un argument. Si un argument est transmis, il peut présenter n'importe quel type et sa valeur n'est pas utilisée. L'objectif de cet argument est d'éviter l'élimination des sous-expressions communes, de sorte que deux instances distinctes de la même fonction retournent des colonnes distinctes avec des nombres aléatoires distincts.
| Fonction | Description |
|---|---|
|
rand |
Renvoie un nombre UInt32 pseudo-aléatoire, réparti uniformément parmi tous les nombres de type UInt32. Il utilise un générateur congruentiel linéaire. |
|
rand64 |
Renvoie un nombre UInt64 pseudo-aléatoire, réparti uniformément parmi tous les nombres de type UInt64. Il utilise un générateur congruentiel linéaire. |
|
randConstant |
Renvoie un nombre UInt64 pseudo-aléatoire, réparti uniformément parmi tous les nombres de type UInt64. |
Fonctions d'Encodage
Le tableau suivant décrit les fonctions d'encodage :
| Fonction | Description |
|---|---|
|
hex |
Accepte les arguments de type : String, UInt, Date ou DateTime. Une chaîne contenant la représentation hexadécimale de l'argument est retournée. Elle utilise les lettres majuscules de A à F. Elle n'utilise pas les préfixes 0x ni les suffixes h. Pour les chaînes de caractères, tous les octets sont simplement encodés sous la forme de deux nombres hexadécimaux. Les nombres sont convertis au format big endian. La date est encodée en nombre de jours depuis le début du temps Unix. DateTime est encodé comme le nombre de secondes depuis le début du temps Unix. |
|
unhex(str) |
Accepte une chaîne contenant un nombre quelconque de chiffres hexadécimaux et retourne une chaîne contenant les octets correspondants. Elle prend en charge les lettres majuscules et minuscules de A à F. Le nombre de chiffres hexadécimaux ne doit pas nécessairement être pair. S'il est impair, le dernier chiffre est interprété comme la moitié inférieure de l'octet 00-0F. Si la chaîne d'argument contient autre chose que des chiffres hexadécimaux, aucune exception n'est générée. Si vous souhaitez convertir le résultat en nombre, vous pouvez utiliser les fonctions reverse et reinterpretAsType. |
|
bitmaskToList(num) |
Accepte un nombre entier. Elle renvoie une chaîne contenant la liste des puissances de deux qui totalisent le nombre source une fois additionnées. Ils sont séparés par des virgules, sans espaces, au format texte, par ordre croissant. |
Fonctions permettant de Travailler avec les URL
Le tableau suivant décrit les fonctions qui traitent les URL :
| Fonction | Description |
|---|---|
|
protocol |
Retourne le protocole (par exemple http, ftp, mailto, imap). |
|
domain |
Retourne le domaine. |
|
domainWithoutWWW |
Retourne le domaine et supprime au maximum un www. du début de celui-ci, s'il existe. |
|
topLevelDomain |
Retourne le domaine de niveau supérieur. Par exemple .com. |
|
firstSignificantSubdomain |
Retourne le premier sous-domaine significatif.
|
|
cutToFirstSignificantSubdomain |
Retourne la partie du domaine qui comprend les sous-domaines de niveau supérieur jusqu'au premier sous-domaine significatif. |
|
path |
Retourne le chemin. Le chemin ne comprend pas la chaîne de requête. |
|
pathFull |
Retourne le chemin qui comprend la chaîne de requête et le fragment. Exemple : /top/news.html?page=2#comments |
|
queryString |
Retourne la chaîne de requête. La chaîne de requête ne comprend pas ces éléments :
|
|
fragmenttext |
Retourne l'identifiant de fragment. Il ne comprend pas le symbole dièse # initial. |
|
queryStringAndFragment |
Retourne la chaîne de requête et l'identifiant de fragment. |
|
extractURLParameter(URL, name) |
Retourne la valeur du paramètre name de l'URL, s'il existe. Il retourne sinon une chaîne vide. S'il existe plusieurs paramètres portant ce nom, la première occurrence est retournée. Cette fonction suppose que le nom du paramètre est encodé dans l'URL exactement de la même manière que dans l'argument transmis. |
|
extractURLParameters(URL) |
Retourne un tableau de chaînes nom=valeur correspondant aux paramètres de l'URL. Les valeurs ne sont décodées d'aucune manière. |
|
extractURLParameterNames(URL) |
Retourne un tableau de chaînes de noms correspondant aux noms des paramètres de l'URL. Les valeurs ne sont décodées d'aucune manière. |
|
URLHierarchy(URL) |
Retourne un tableau contenant l'URL, tronqué à la fin par les symboles /, ? dans le chemin et la chaîne de requête. Les caractères de séparation consécutifs sont décomptés en tant qu'un seul caractère. La coupure s'effectue au niveau de la position située après l'ensemble des caractères de séparation consécutifs. Exemple : URLPathHierarchy('https://example.com/browse/CONV-6788') =[ '/browse/', '/browse/CONV-6788' ] |
|
URLPathHierarchy(URL) |
Retourne le même résultat que URLHierarchy(URL), mais sans protocole ni hôte dans le résultat. L'élément /' (racine) n'est pas inclus. |
|
decodeURLComponent(URL) |
Retourne l'URL décodée. |
|
cutWWW |
Ne supprime pas plus d'un seul www. du début du domaine de l'URL, s'il existe. |
|
cutQueryString |
Supprime la chaîne de requête. Le point d'interrogation est également supprimé. |
|
cutFragment |
Supprime l'identifiant de fragment. Le signe du nombre est également supprimé. |
|
cutQueryStringAndFragment |
Supprime la chaîne de requête et l'identifiant de fragment. Le point d'interrogation et le signe numérique sont également supprimés. |
|
cutURLParameter(URL, name) |
Supprime le paramètre name de l'URL, s'il existe. Cette fonction part du principe que le nom du paramètre est encodé dans l'URL exactement de la même manière que dans l'argument transmis. |
Fonctions permettant de Travailler avec les Adresses IP
Le tableau suivant décrit les fonctions qui traitent les adresses IP :
| Fonction | Description |
|---|---|
|
IPv4NumToString (num) |
Reçoit un nombre UInt32 et l'interprète comme une adresse IPv4 au format big endian. Une chaîne contenant l'adresse IPv4 correspondante au format A.B.C.D (nombres séparés par des points sous forme décimale) est retournée. |
|
IPv4StringToNum(s) |
La fonction inverse de IPv4NumToString. Si le format de l'adresse IPv4 est invalide, 0 est retourné. |
|
IPv4NumToStringClassC(num) |
Similaire à IPv4NumToString, mais utilise xxx à la place du dernier octet. |
|
IPv6NumToString(x) |
Accepte une valeur FixedString(16) contenant l'adresse IPv6 au format binaire. Une chaîne contenant cette adresse au format texte est retournée. Les adresses IPv4 mappées en IPv6 sont produites au format :: ffff: 111.222.33.44. |
|
IPv6StringToNum(s) |
La fonction inverse de IPv6NumToString. Si le format de l'adresse IPv6 est invalide, une chaîne d'octets nuls est retournée. HEX peut être en majuscules ou minuscules. |
|
IPv4ToIPv6(x) |
Reçoit un nombre UInt32 et l'interprète comme une adresse IPv4 au format big endian. Une valeur FixedString(16) contenant l'adresse IPv6 au format binaire est retournée. |
|
cutIPv6(x, bitsToCutForIPv6, bitsToCutForIPv4) |
Accepte une valeur FixedString(16) contenant l'adresse IPv6 au format binaire. Une chaîne contenant l'adresse du nombre spécifié de bits supprimés au format texte est retournée. |
|
IPv4CIDRtoIPv4Range(ipv4, cidr) |
Accepte une IPv4 et une valeur UInt8 contenant le CIDR. Un tuple avec deux valeurs IPv4 contenant la plage inférieure et la plage supérieure du sous-réseau est retourné. |
|
IPv6CIDRtoIPv6Range(ipv6, cidr) |
Accepte une IPv6 et une valeur UInt8 contenant le CIDR. Un tuple avec deux valeurs IPv6 contenant la plage inférieure et la plage supérieure du sous-réseau est retourné. |
Fonctions permettant de Travailler avec les arguments Nullable
| Fonction | Description |
|---|---|
|
isNull(x) |
Vérifie si l'argument est NULL. Paramètres :
Valeur retournée :
|
|
isNotNull (x) |
Paramètres :
Valeur retournée :
|
|
coalesce(x,...) |
|
|
ifNull |
Retourne une valeur alternative si l'argument principal est NULL. |
|
ifNull (x, alt) |
Paramètres :
Valeurs retournées :
|
|
nullIf(x,y) |
Retourne NULL si les arguments sont égaux. Paramètres :
Valeurs retournées :
|
|
assumeNotNull(x) |
Paramètres :
Valeurs retournées :
|
|
toNullable(x) |
Convertit le type d'argument en Nullable. Paramètres :
Valeur retournée :
|
Syntaxe SQL de Requête Avancée