Tous les produits
Search
Centre de documentation

MaxCompute:Autres fonctions

Dernière mise à jour :Aug 10, 2026

MaxCompute SQL met à votre disposition diverses fonctions courantes pour le développement. Sélectionnez la fonction adaptée à vos besoins. Cette rubrique décrit la syntaxe, les paramètres et des exemples d'utilisation des fonctions prises en charge par MaxCompute SQL, telles que CAST, FAILIF et HASH.

Fonction

Fonctionnalités

Expression BETWEEN AND

Filtre les données qui satisfont à la condition de plage spécifiée.

Expression CASE WHEN

Renvoie différentes valeurs selon le résultat d'une expression.

CAST

Convertit le résultat d'une expression vers un type de données cible.

COALESCE

Renvoie la première valeur non NULL d'une liste de paramètres.

COMPRESS

Compresse un paramètre d'entrée STRING ou BINARY à l'aide de l'algorithme GZIP.

CRC32

Calcule la valeur de contrôle de redondance cyclique (CRC) d'une chaîne ou de données binaires.

DECOMPRESS

Décompresse un paramètre d'entrée BINARY à l'aide de l'algorithme GZIP.

FAILIF

Renvoie true ou un message d'erreur personnalisé selon le résultat d'une expression.

GET_IDCARD_AGE

Renvoie l'âge actuel à partir d'un numéro de carte d'identité chinoise.

GET_IDCARD_BIRTHDAY

Renvoie la date de naissance à partir d'un numéro de carte d'identité chinoise.

GET_IDCARD_SEX

Renvoie le sexe à partir d'un numéro de carte d'identité chinoise.

GET_USER_ID

Récupère l'ID du compte actuel.

HASH

Calcule une valeur de hachage à partir des paramètres d'entrée.

IF

Vérifie si une condition spécifiée est vraie.

MAX_PT

Renvoie la valeur maximale de la partition de premier niveau dans une table partitionnée.

NULLIF

Détermine si les deux paramètres d'entrée sont égaux.

NVL

Spécifie la valeur de retour pour un paramètre NULL.

ORDINAL

Trie les variables d'entrée par ordre croissant et renvoie la valeur à une position spécifiée.

PARTITION_EXISTS

Vérifie l'existence d'une partition spécifiée.

SAMPLE

Échantillonne toutes les valeurs de colonnes lues et filtre les lignes qui ne satisfont pas aux conditions d'échantillonnage.

SHA

Calcule la valeur de hachage SHA-1 d'une chaîne ou de données binaires.

SHA1

Calcule la valeur de hachage SHA-1 d'une chaîne ou de données binaires.

SHA2

Calcule la valeur de hachage SHA-2 d'une chaîne ou de données binaires.

STACK

Divise un groupe spécifié de paramètres en un nombre défini de lignes.

STR_TO_MAP

Divise une chaîne en clés et valeurs selon des séparateurs spécifiés.

TABLE_EXISTS

Vérifie l'existence d'une table spécifiée.

TRANS_ARRAY

Fonction définie par l'utilisateur retournant une table (UDTF) qui convertit une ligne de données en plusieurs lignes. Elle transforme un tableau stocké dans une colonne avec un séparateur fixe en plusieurs lignes.

TRANS_COLS

UDTF qui convertit une ligne de données en plusieurs lignes. Elle répartit différentes colonnes sur différentes lignes.

UNIQUE_ID

Renvoie un ID aléatoire. Cette fonction est plus efficace que la fonction UUID.

UUID

Renvoie un ID aléatoire.

Expression BETWEEN AND

  • Syntaxe

    <a> [NOT] BETWEEN <b> AND <c>
  • Description

    Filtre les données dont la valeur de a se situe entre b et c, ou ne se situe pas entre b et c.

  • Paramètres

    • a : obligatoire. Champ à filtrer.

    • b et c : obligatoires. Plage spécifiée. Les types de données de b et c doivent correspondre au type de données de a.

  • Valeur de retour

    Renvoie les données satisfaisant à la condition.

    Si a, b ou c est null, le résultat est null.

  • Exemples

    Les données suivantes figurent dans la table emp.

    | empno | ename | job | mgr | hiredate| sal| comm | deptno |
    7369,SMITH,CLERK,7902,1980-12-17 00:00:00,800,,20
    7499,ALLEN,SALESMAN,7698,1981-02-20 00:00:00,1600,300,30
    7521,WARD,SALESMAN,7698,1981-02-22 00:00:00,1250,500,30
    7566,JONES,MANAGER,7839,1981-04-02 00:00:00,2975,,20
    7654,MARTIN,SALESMAN,7698,1981-09-28 00:00:00,1250,1400,30
    7698,BLAKE,MANAGER,7839,1981-05-01 00:00:00,2850,,30
    7782,CLARK,MANAGER,7839,1981-06-09 00:00:00,2450,,10
    7788,SCOTT,ANALYST,7566,1987-04-19 00:00:00,3000,,20
    7839,KING,PRESIDENT,,1981-11-17 00:00:00,5000,,10
    7844,TURNER,SALESMAN,7698,1981-09-08 00:00:00,1500,0,30
    7876,ADAMS,CLERK,7788,1987-05-23 00:00:00,1100,,20
    7900,JAMES,CLERK,7698,1981-12-03 00:00:00,950,,30
    7902,FORD,ANALYST,7566,1981-12-03 00:00:00,3000,,20
    7934,MILLER,CLERK,7782,1982-01-23 00:00:00,1300,,10
    7948,JACCKA,CLERK,7782,1981-04-12 00:00:00,5000,,10
    7956,WELAN,CLERK,7649,1982-07-20 00:00:00,2450,,10
    7956,TEBAGE,CLERK,7748,1982-12-30 00:00:00,1300,,10

    La commande suivante interroge les données dont la valeur de sal est supérieure ou égale à 1000 et inférieure ou égale à 1500.

    select * from emp where sal between 1000 and 1500;

    Le résultat suivant est renvoyé.

    +-------+-------+-----+------------+------------+------------+------------+------------+
    | empno | ename | job | mgr        | hiredate   | sal        | comm       | deptno     |
    +-------+-------+-----+------------+------------+------------+------------+------------+
    | 7521  | WARD  | SALESMAN | 7698  | 1981-02-22 00:00:00 | 1250.0     | 500.0      | 30  |
    | 7654  | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.0     | 1400.0     | 30 |
    | 7844  | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.0     | 0.0        | 30 |
    | 7876  | ADAMS | CLERK | 7788  | 1987-05-23 00:00:00 | 1100.0     | NULL     | 20   |
    | 7934  | MILLER | CLERK | 7782  | 1982-01-23 00:00:00 | 1300.0     | NULL      | 10  |
    | 7956  | TEBAGE | CLERK | 7748  | 1982-12-30 00:00:00 | 1300.0     | NULL      | 10  |
    +-------+-------+-----+------------+------------+------------+------------+------------+

Expression CASE WHEN

  • Syntaxe

    MaxCompute propose les deux formats CASE WHEN suivants :

    • CASE <value>
      WHEN <value1> THEN <result1>
      WHEN <value2> THEN <result2>
      ...
      ELSE <resultn>
      END
    • CASE
      WHEN (<_condition1>) THEN <result1>
      WHEN (<_condition2>) THEN <result2>
      WHEN (<_condition3>) THEN <result3>
      ...
      ELSE <resultn>
      END
  • Description

    Renvoie différentes valeurs de result selon le résultat de value ou de _condition.

  • Paramètres

    • value : obligatoire. Valeur à comparer.

    • _condition : obligatoire. Condition à évaluer.

    • result : obligatoire. Valeur de retour.

  • Valeur de retour

    • Si result contient uniquement des types BIGINT et DOUBLE, toutes les valeurs sont converties en DOUBLE avant le renvoi du résultat.

    • Si result inclut le type STRING, toutes les valeurs sont converties au type STRING avant le renvoi du résultat. Si une conversion de type de données n'est pas prise en charge, une erreur est renvoyée. Par exemple, les données de type BOOLEAN ne peuvent pas être converties au type STRING.

    • Les autres conversions de type ne sont pas autorisées.

  • Exemples

    La table sale_detail comporte les champs shop_name string, customer_id string, total_price double et contient les données suivantes.

    +------------+-------------+-------------+------------+------------+
    | shop_name  | customer_id | total_price | sale_date  | region     |
    +------------+-------------+-------------+------------+------------+
    | s1         | c1          | 100.1       | 2013       | china      |
    | s2         | c2          | 100.2       | 2013       | china      |
    | s3         | c3          | 100.3       | 2013       | china      |
    | null       | c5          | NULL        | 2014       | shanghai   |
    | s6         | c6          | 100.4       | 2014       | shanghai   |
    | s7         | c7          | 100.5       | 2014       | shanghai   |
    +------------+-------------+-------------+------------+------------+

    Voici un exemple de commande.

    select 
    case  
    when region='china' then 'default_region'
    when region like 'shang%' then 'sh_region'
    end as region 
    from sale_detail;

    Le résultat suivant est renvoyé.

    +------------+
    | region     |
    +------------+
    | default_region |
    | default_region |
    | default_region |
    | sh_region  |
    | sh_region  |
    | sh_region  |
    +------------+

CAST

  • Syntaxe

    CAST(<expr> AS <type>)
  • Description

    Convertit le résultat de expr vers le type de données cible type.

  • Paramètres

    • expr : obligatoire. Données source à convertir.

    • type : obligatoire. Type de données cible. Utilisation :

      • cast(double as bigint) : convertit une valeur du type de données DOUBLE au type de données BIGINT.

      • cast(string as bigint) : lors de la conversion d'une chaîne vers le type de données BIGINT, si la chaîne contient un nombre exprimé sous forme d'entier, elle est directement convertie au type BIGINT. Si la chaîne contient un nombre exprimé sous forme décimale ou exponentielle, elle est d'abord convertie au type de données DOUBLE, puis au type de données BIGINT.

      • cast(string as datetime) ou cast(datetime as string) : le format de date par défaut yyyy-mm-dd hh:mi:ss est utilisé.

  • Valeur de retour

    • La valeur de retour est du type de données cible.

    • Si vous exécutez setproject odps.function.strictmode=false, la fonction renvoie les chiffres précédant les lettres.

    • Si vous exécutez setproject odps.function.strictmode=true, une erreur est renvoyée.

    • Lors de la conversion d'une valeur vers le type DECIMAL, si vous définissez odps.sql.decimal.tostring.trimzero=true, les zéros non significatifs après la virgule décimale sont supprimés. Si vous définissez odps.sql.decimal.tostring.trimzero=false, les zéros non significatifs après la virgule décimale sont conservés.

      Important

      Le paramètre odps.sql.decimal.tostring.trimzero s'applique aux données récupérées depuis les tables ainsi qu'aux valeurs statiques.

  • Exemples

    • Exemple 1 : utilisation courante.

      --Returns 1.
      select cast('1' as bigint);
    • Exemple 2 : conversion d'une valeur STRING en valeur BOOLEAN. Si la chaîne STRING est vide, false est renvoyé. Sinon, true est renvoyé.

      • La chaîne STRING est vide.

        select cast("" as boolean);
        --Returns
        +------+
        | _c0  |
        +------+
        | false |
        +------+
      • La chaîne STRING n'est pas vide.

        select cast("false" as boolean);
        --Returns true
        +------+
        | _c0  |
        +------+
        | true |
        +------+
    • Exemple 3 : conversion d'une chaîne en date.

      --Convert a string to a date.
      select cast("2022-12-20" as date);
      --Returns
      +------------+
      | _c0        |
      +------------+
      | 2022-12-20 |
      +------------+
      
      --Convert a date string with a time part to a date.
      select cast("2022-12-20 00:01:01" as date);
      --Returns
      +------------+
      | _c0        |
      +------------+
      | NULL       |
      +------------+
      --To ensure the value is displayed correctly, set the following parameter:
      set odps.sql.executionengine.enable.string.to.date.full.format= true;
      select cast("2022-12-20 00:01:01" as date);
      --Returns
      +------------+
      | _c0        |
      +------------+
      | 2022-12-20 |
      +------------+
      Remarque

      Par défaut, le paramètre odps.sql.executionengine.enable.string.to.date.full.format est défini sur false. Pour convertir une chaîne de date incluant une partie horaire, définissez ce paramètre sur true.

    • Exemple 4 (exemple de commande incorrect) : utilisation invalide. Une exception est levée si une conversion échoue ou n'est pas prise en charge. La commande suivante illustre une utilisation incorrecte.

      select cast('abc' as bigint);
    • Exemple 5 : scénario où setproject odps.function.strictmode=false est défini.

      setprojectodps.function.strictmode=false;
      select cast('123abc'as bigint);
      --Returns
      +------------+
      |_c0|
      +------------+
      |123|
      +------------+
    • Exemple 6 : scénario où setproject odps.function.strictmode=true est défini.

      setprojectodps.function.strictmode=true;
      select cast('123abc' as bigint);
      --Returns
      FAILED:ODPS-0130071:[0,0]Semanticanalysisexception-physicalplangenerationfailed:java.lang.NumberFormatException:ODPS-0123091:Illegaltypecast-Infunctioncast,value'123abc'cannotbecastedfromStringtoBigint.
    • Exemple 7 : scénario où odps.sql.decimal.tostring.trimzero est défini.

      --Create a table.
      create table mf_dot (dcm1 decimal(38,18),
                           dcm2 decimal(38,18));
      --Insert data.
      insert into table mf_dot values (12.45500BD,12.3400BD);
      
      --When the flag is true or not set.
      set odps.sql.decimal.tostring.trimzero=true;
      --Remove trailing zeros after the decimal point.
      select cast(round(dcm1,3) as string),cast(round(dcm2,3) as string) from mf_dot;
      --Return value
      +------------+------------+
      | _c0        | _c1        |
      +------------+------------+
      | 12.455     | 12.34      |
      +------------+------------+
      
      --When the flag is false.
      set odps.sql.decimal.tostring.trimzero=false;
      --Keep trailing zeros after the decimal point.
      select cast(round(dcm1,3) as string),cast(round(dcm2,3) as string) from mf_dot;
      --Return value
      +------------+------------+
      | _c0        | _c1        |
      +------------+------------+
      | 12.455     | 12.340     |
      +------------+------------+
      
      --This parameter also applies to static values.
      set odps.sql.decimal.tostring.trimzero=false;
      select cast(round(12345.120BD,3) as string);
      --Returns:
      +------------+
      | _c0        |
      +------------+
      | 12345.120  |
      +------------+

COALESCE

  • Syntaxe

    COALESCE(<expr1>, <expr2>, ...)
  • Description

    Renvoie la première valeur non NULL de la liste <expr1>, <expr2>, ....

  • Paramètres

    expr : obligatoire. Valeur à vérifier.

  • Valeur de retour

    Le type de données de la valeur de retour correspond aux types de données des paramètres.

  • Exemples

    • Exemple 1 : utilisation courante. Voici un exemple de commande.

      --Returns 1.
      select coalesce(null,null,1,null,3,5,7);
    • Exemple 2 : une erreur est renvoyée si le type de données d'une valeur de paramètre n'est pas défini.

      • Commande invalide

        -- The data type of the parameter abc is not defined. The system engine cannot recognize it and returns an error.
        select coalesce(null,null,1,null,abc,5,7);
      • Commande valide

        select coalesce(null,null,1,null,'abc',5,7);
    • Exemple 3 : si toutes les valeurs de paramètre sont null lorsque vous ne lisez pas de données depuis une table, une erreur est renvoyée. Il s'agit d'une commande invalide.

      -- An error is returned, indicating that at least one parameter value must be non-NULL.
      select coalesce(null,null,null,null);
    • Exemple 4 : si toutes les valeurs de paramètre sont null lors de la lecture de données depuis une table, NULL est renvoyé.

      Table source :

      +-----------+-------------+------------+
      | shop_name | customer_id | toal_price |
      +-----------+-------------+------------+
      | ad        | 10001       | 100.0      |
      | jk        | 10002       | 300.0      |
      | ad        | 10003       | 500.0      |
      | tt        | NULL        | NULL       |
      +-----------+-------------+------------+

      Comme indiqué dans la table source, toutes les valeurs de tt sont null. Après exécution de l'instruction suivante, NULL est renvoyé.

      select coalesce(customer_id,total_price) from sale_detail where shop_name='tt';

COMPRESS

  • Syntaxe

    BINARY COMPRESS(STRING <str>)
    BINARY COMPRESS(BINARY <bin>)
  • Description

    Compresse str ou bin à l'aide de l'algorithme GZIP.

  • Paramètres

    • str : obligatoire. Valeur de type STRING.

    • bin : obligatoire. Valeur de type BINARY.

  • Valeur de retour

    Renvoie une valeur de type BINARY. Si le paramètre d'entrée est NULL, NULL est renvoyé.

  • Exemples

    • Exemple 1 : compresse la chaîne hello à l'aide de l'algorithme GZIP. Voici un exemple de commande.

      -- The return value is =1F=8B=08=00=00=00=00=00=00=03=CBH=CD=C9=C9=07=00=86=A6=106=05=00=00=00.
      select compress('hello');
    • Exemple 2 : le paramètre d'entrée est une chaîne vide. Voici un exemple de commande.

      -- The return value is =1F=8B=08=00=00=00=00=00=00=03=03=00=00=00=00=00=00=00=00=00.
      select compress('');
    • Exemple 3 : le paramètre d'entrée est NULL. Voici un exemple de commande.

      -- Returns NULL.
      select compress(null);

CRC32

  • Syntaxe

    BIGINT CRC32(STRING|BINARY <expr>)
  • Description

    Calcule la valeur de contrôle de redondance cyclique (CRC) de l'expression STRING ou BINARY expr.

  • Paramètres

    expr : obligatoire. Valeur de type STRING ou BINARY.

  • Valeur de retour

    Renvoie une valeur de type BIGINT. Les règles suivantes s'appliquent :

    • Si le paramètre d'entrée est NULL, NULL est renvoyé.

    • Si le paramètre d'entrée est une chaîne vide, 0 est renvoyé.

  • Exemples

    • Exemple 1 : calcule la valeur CRC de la chaîne ABC. Voici un exemple de commande.

      -- Returns 2743272264.
      select crc32('ABC');
    • Exemple 2 : le paramètre d'entrée est NULL. Voici un exemple de commande.

      -- Returns NULL.
      select crc32(null);

DECOMPRESS

  • Syntaxe

    BINARY DECOMPRESS(BINARY <bin>)
  • Description

    Décompresse bin à l'aide de l'algorithme GZIP.

  • Paramètres

    bin : obligatoire. Valeur de type BINARY.

  • Valeur de retour

    Renvoie une valeur de type BINARY. Si le paramètre d'entrée est NULL, NULL est renvoyé.

  • Exemples

    • Exemple 1 : décompresse le résultat compressé de la chaîne hello, world et le convertit au format STRING. Voici un exemple de commande.

      -- Returns hello, world.
      select cast(decompress(compress('hello, world')) as string);
    • Exemple 2 : le paramètre d'entrée est NULL. Voici un exemple de commande.

      -- Returns NULL.
      select decompress(null);

GET_IDCARD_AGE

  • Syntaxe

    get_idcard_age(<idcardno>)
  • Description

    Renvoie l'âge actuel à partir d'un numéro de carte d'identité chinoise. L'âge est calculé en soustrayant l'année de naissance extraite du numéro de carte d'identité de l'année en cours.

  • Paramètres

    idcardno : obligatoire. Numéro de carte d'identité chinoise à 15 ou 18 chiffres de type STRING. La fonction vérifie la validité du numéro de carte d'identité sur la base du code provincial et du dernier chiffre de contrôle. En cas d'échec de la vérification, NULL est renvoyé.

  • Valeur de retour

    Renvoie une valeur de type BIGINT. Si l'entrée est NULL, NULL est renvoyé.

GET_IDCARD_BIRTHDAY

  • Syntaxe

    get_idcard_birthday(<idcardno>)
  • Description

    Renvoie la date de naissance à partir d'un numéro de carte d'identité chinoise.

  • Paramètres

    idcardno : obligatoire. Numéro de carte d'identité chinoise à 15 ou 18 chiffres de type STRING. La fonction vérifie la validité du numéro de carte d'identité sur la base du code provincial et du dernier chiffre de contrôle. En cas d'échec de la vérification, NULL est renvoyé.

  • Valeur de retour

    Renvoie une valeur de type DATETIME. Si l'entrée est NULL, NULL est renvoyé.

GET_IDCARD_SEX

  • Syntaxe

    get_idcard_sex(<idcardno>)
  • Description

    Renvoie le sexe à partir d'un numéro de carte d'identité chinoise. La valeur est M (masculin) ou F (féminin).

  • Paramètres

    idcardno : obligatoire. Numéro de carte d'identité chinoise à 15 ou 18 chiffres de type STRING. La fonction vérifie la validité du numéro de carte d'identité sur la base du code provincial et du dernier chiffre de contrôle. En cas d'échec de la vérification, NULL est renvoyé.

  • Valeur de retour

    Renvoie une valeur de type STRING. Si l'entrée est NULL, NULL est renvoyé.

GET_USER_ID

  • Syntaxe

    get_user_id()
  • Description

    Récupère l'ID du compte actuel, également appelé ID utilisateur ou UID.

  • Paramètres

    Aucun paramètre requis.

  • Valeur de retour

    Renvoie l'ID du compte actuel.

  • Exemples

    select get_user_id();
    -- The following result is returned.
    +------------+
    | _c0        |
    +------------+
    | 1117xxxxxxxx8519 |
    +------------+

HASH

  • Syntaxe

    • Si le projet MaxCompute est en mode compatible Hive, la syntaxe est la suivante.

      INT HASH(<value1>, <value2>[, ...]);
    • Si le projet MaxCompute n'est pas en mode compatible Hive, la syntaxe est la suivante.

      BIGINT HASH(<value1>, <value2>[, ...]);
  • Description

    Calcule la valeur de hachage de value1 et value2.

  • Paramètres

    value1 et value2 : obligatoires. Paramètres pour lesquels calculer la valeur de hachage. Les paramètres peuvent être de différents types de données. Les types de données pris en charge varient selon les modes compatible et non compatible Hive :

    • Mode compatible Hive : TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, BOOLEAN, STRING, CHAR, VARCHAR, DATETIME et DATE.

    • Mode non compatible Hive : BIGINT, DOUBLE, BOOLEAN, STRING et DATETIME.

    Remarque

    Pour les mêmes entrées, les valeurs de hachage renvoyées sont toujours identiques. Toutefois, si deux valeurs de hachage sont identiques, cela ne garantit pas que les valeurs d'entrée sont les mêmes. Une collision de hachage peut se produire.

  • Valeur de retour

    Renvoie une valeur de type INT ou BIGINT. Si un paramètre d'entrée est une chaîne vide ou NULL, 0 est renvoyé.

  • Exemples

    • Exemple 1 : calcul de la valeur de hachage de paramètres d'entrée du même type de données. Voici un exemple de commande.

      -- Returns 66.
      SELECT HASH(0L, 2L, 4L);
    • Exemple 2 : calcul de la valeur de hachage de paramètres d'entrée de types de données différents. Voici un exemple de commande.

      -- Returns 97.
      SELECT HASH(0L, 'a');
    • Exemple 3 : un paramètre d'entrée est une chaîne vide ou NULL. Voici un exemple de commande.

      -- Returns 0.
      SELECT HASH(0L, null);
      -- Returns 0.
      SELECT HASH(0L, '');

IF

  • Syntaxe

    IF(<testCondition>, <valueTrue>, <valueFalseOrNull>)
  • Description

    Vérifie si testCondition est vrai. Si c'est le cas, la fonction renvoie la valeur de valueTrue. Sinon, elle renvoie la valeur de valueFalseOrNull.

  • Paramètres

    • testCondition : obligatoire. Expression à évaluer. Doit être de type BOOLEAN.

    • valueTrue : obligatoire. Valeur à renvoyer si l'expression testCondition est vraie.

    • valueFalseOrNull : valeur à renvoyer si l'expression testCondition est fausse. Peut être définie sur NULL.

  • Valeur de retour

    Le type de données de la valeur de retour correspond au type de données du paramètre valueTrue ou valueFalseOrNull.

  • Exemples

    -- Returns 200.
    select if(1=2, 100, 200); 

MAX_PT

  • Syntaxe

    MAX_PT(<table_full_name>)
  • Description

    Renvoie la valeur maximale d'une partition de premier niveau contenant des données dans une table partitionnée. Les valeurs sont triées par ordre alphabétique. La fonction lit ensuite les données de cette partition.

  • Notes

    • La fonction MAX_PT peut également être implémentée à l'aide de SQL standard. SELECT * FROM table WHERE pt=MAX_PT("table"); peut être réécrit sous la forme SELECT * FROM table WHERE pt = (SELECT MAX(pt) FROM table);.

      Remarque

      MaxCompute ne fournit pas de fonction MIN_PT. Vous ne pouvez pas utiliser l'instruction SQL SELECT * FROM table WHERE pt=MIN_PT("table"); pour obtenir une fonctionnalité similaire à MAX_PT afin de récupérer la partition minimale contenant des données. Cependant, vous pouvez utiliser l'instruction SQL standard SELECT * FROM table WHERE pt= (SELECT MIN(pt) FROM table); pour obtenir le même effet.

    • Si toutes les partitions de la table sont vides, la fonction MAX_PT échoue. Assurez-vous qu'au moins une partition n'est pas vide.

    • Les tables externes OSS prennent également en charge la fonction MAX_PT. Le comportement est identique à celui des tables internes.

  • Paramètres

    table_full_name : obligatoire. Valeur de type STRING. Nom de la table. Vous devez disposer des permissions de lecture sur la table.

  • Valeur de retour

    Renvoie la valeur de la plus grande partition de premier niveau.

    Remarque

    Si vous créez une partition uniquement à l'aide de ALTER TABLE et que la partition ne contient aucune donnée, la partition n'est pas renvoyée.

  • Exemples

    • Exemple 1 : la table tbl est une table partitionnée. Ses partitions sont 20120901 et 20120902, et les deux contiennent des données. Dans l'instruction suivante, MAX_PT renvoie '20120902'. L'instruction MaxCompute SQL lit les données de la partition pt='20120902'. Voici un exemple de commande.

      SELECT * FROM tbl WHERE pt= MAX_PT('tbl');
      -- This is equivalent to the following statement.
      SELECT * FROM tbl WHERE pt= (SELECT MAX(pt) FROM tbl);
    • Exemple 2 : dans un scénario de partitionnement multiniveau, utilisez SQL standard pour obtenir les données de la plus grande partition. Voici un exemple de commande.

      SELECT * FROM table WHERE pt1 = (SELECT MAX(pt1) FROM table) AND pt2 = (SELECT MAX(pt2) FROM table WHERE pt1= (SELECT MAX(pt1) FROM table));

NULLIF

  • Syntaxe

    T NULLIF(T <expr1>, T <expr2>)
  • Description

    Compare les valeurs de expr1 et expr2. Si elles sont égales, la fonction renvoie NULL. Sinon, elle renvoie expr1.

  • Paramètres

    expr1 et expr2 : obligatoires. Expressions de tout type. T indique le type de données d'entrée. Il peut s'agir de tout type de données pris en charge par MaxCompute.

  • Valeur de retour

    Renvoie NULL ou expr1.

  • Exemples

    -- Returns 2.
    select nullif(2, 3);
    -- Returns NULL.
    select nullif(2, 2);
    -- Returns 3.
    select nullif(3, null);

NVL

  • Syntaxe

    nvl(T <value>, T <default_value>)
  • Description

    Si la valeur de value est NULL, la fonction renvoie default_value. Sinon, elle renvoie value. Les deux paramètres doivent être du même type de données.

  • Paramètres

    • value : obligatoire. Paramètre d'entrée. T indique le type de données d'entrée. Il peut s'agir de tout type de données pris en charge par MaxCompute.

    • default_value : obligatoire. Valeur de remplacement. Doit être du même type de données que value.

  • Exemples

    La table t_data comporte trois colonnes : c1 string, c2 bigint et c3 datetime. La table contient les données suivantes.

    +----+------------+------------+
    | c1 | c2 | c3 |
    +----+------------+------------+
    | NULL | 20 | 2017-11-13 05:00:00 |
    | ddd | 25 | NULL |
    | bbb | NULL | 2017-11-12 08:00:00 |
    | aaa | 23 | 2017-11-11 00:00:00 |
    +----+------------+------------+

    Vous pouvez utiliser la fonction nvl pour afficher 00000 pour les valeurs NULL dans c1, 0 pour les valeurs NULL dans c2 et - pour les valeurs NULL dans c3. Voici un exemple de commande.

    select nvl(c1,'00000'),nvl(c2,0),nvl(c3,'-') from nvl_test;
    -- The following result is returned.
    +-----+------------+-----+
    | _c0 | _c1 | _c2 |
    +-----+------------+-----+
    | 00000 | 20 | 2017-11-13 05:00:00 |
    | ddd | 25 | - |
    | bbb | 0 | 2017-11-12 08:00:00 |
    | aaa | 23 | 2017-11-11 00:00:00 |
    +-----+------------+-----+

ORDINAL

  • Syntaxe

    ORDINAL(BIGINT <nth>, <var1>, <var2>[,...])
  • Description

    Trie les variables d'entrée par ordre croissant et renvoie la valeur à la position nth.

  • Paramètres

    • nth : obligatoire. Numéro de position, à partir de 1. Valeur de type BIGINT. Si la valeur à la position spécifiée est NULL, NULL est renvoyé.

    • var : obligatoire. Valeurs à trier. Peuvent être de type BIGINT, DOUBLE, DATETIME ou STRING.

  • Valeur de retour

    • Valeur à la position nth. En l'absence de conversion implicite, le type de données de la valeur de retour correspond au type de données des paramètres d'entrée.

    • En cas de conversion de type, une conversion entre DOUBLE, BIGINT et STRING renvoie un type DOUBLE. Une conversion entre STRING et DATETIME renvoie un type DATETIME. Les autres conversions implicites ne sont pas autorisées.

    • NULL est traité comme la valeur minimale.

  • Exemples

    -- Returns 3. 
    SELECT ORDINAL(CAST(3 AS BIGINT), CAST(1 AS BIGINT), cast(3 AS BIGINT), cast(7 AS BIGINT), cast(5 AS BIGINT), cast(2 AS BIGINT), cast(4 AS BIGINT), cast(6 AS BIGINT));

PARTITION_EXISTS

  • Syntaxe

    boolean partition_exists(string <table_name>, string... <partitions>)
  • Description

    Vérifie l'existence d'une partition spécifiée.

  • Paramètres

    • table_name : obligatoire. Nom de la table. Valeur de type STRING. Le nom de la table peut inclure le nom du projet, par exemple my_proj.my_table. Si vous ne spécifiez pas de nom de projet, le projet actuel est utilisé par défaut.

    • partitions : obligatoire. Nom de la partition. Valeur de type STRING. Spécifiez les valeurs de partition dans l'ordre des colonnes de clé de partition. Le nombre de valeurs de partition doit correspondre au nombre de colonnes de clé de partition.

  • Valeur de retour

    Renvoie une valeur de type BOOLEAN. La fonction renvoie True si la partition spécifiée existe. Sinon, elle renvoie False.

  • Exemples

    -- Create a partitioned table named foo.
    create table foo (id bigint) partitioned by (ds string, hr string);
    -- Add a partition to the foo table.
    alter table foo add partition (ds='20190101', hr='1');
    -- Query whether the partition ds='20190101' and hr='1' exists. The result is True.
    select partition_exists('foo', '20190101', '1');

SAMPLE

  • Syntaxe

    boolean sample(<x>, <y>, [<column_name1>, <column_name2>[,...]])
  • Description

    Le système échantillonne toutes les valeurs lues de column_name selon les paramètres x et y, et filtre les lignes qui ne satisfont pas aux conditions d'échantillonnage.

  • Paramètres

    • x et y : x est obligatoire. Constante BIGINT supérieure à 0. Indique que les données sont hachées en x parties, et que la yème partie est sélectionnée.

      y est facultatif. S'il est omis, la première partie est sélectionnée par défaut. Si vous omettez le paramètre y, vous devez également omettre column_name.

      Si x ou y est d'un autre type ou inférieur ou égal à 0, une exception est levée. Si y est supérieur à x, une erreur est également renvoyée. Si x ou y est NULL, NULL est renvoyé.

    • column_name : facultatif. Colonne cible pour l'échantillonnage. Si ce paramètre est omis, un échantillonnage aléatoire est effectué selon les valeurs de x et y. Ce paramètre peut être de tout type de données et sa valeur peut être NULL. Aucune conversion de type implicite n'est effectuée. Si column_name est une constante NULL, une erreur est renvoyée.

      Remarque
      • Pour éviter les déséquilibres de données causés par les valeurs NULL, les valeurs NULL dans column_name sont hachées uniformément en x parties. Si vous ne spécifiez pas column_name, la sortie peut ne pas être uniforme lorsque le volume de données est faible. Dans ce cas, vous pouvez spécifier column_name pour obtenir un meilleur résultat de sortie.

      • Actuellement, l'échantillonnage aléatoire n'est pris en charge que pour les colonnes des types de données suivants : bigint, datetime, boolean, double, string, binary, char et varchar.

  • Valeur de retour

    Renvoie une valeur de type BOOLEAN.

  • Exemples

    Supposons que la table tbla contienne une colonne nommée cola.

    -- The values are hashed into 4 parts based on the cola column, and the 1st part is taken. The return value is True.
    select * from tbla where sample (4, 1 , cola);
    -- Each row of data is randomly hashed into 4 parts, and the 2nd part is taken. The return value is True.
    select * from tbla where sample (4, 2);

SHA

  • Syntaxe

    STRING SHA(STRING|BINARY <expr>)
  • Description

    Calcule la valeur de hachage SHA-1 de l'expression STRING ou BINARY expr et la renvoie sous forme de chaîne hexadécimale.

  • Paramètres

    expr : obligatoire. Valeur de type STRING ou BINARY.

  • Valeur de retour

    Renvoie une valeur de type STRING. Si le paramètre d'entrée est NULL, NULL est renvoyé.

  • Exemples

    • Exemple 1 : calcule la valeur de hachage SHA de la chaîne ABC. Voici un exemple de commande.

      -- Returns 3c01bdbb26f358bab27f267924aa2c9a03fcfdb8.
      select sha('ABC');
    • Exemple 2 : le paramètre d'entrée est NULL. Voici un exemple de commande.

      -- Returns NULL.
      select sha(null);

SHA1

  • Syntaxe

    string sha1(string|binary <expr>)
  • Description

    Calcule la valeur de hachage SHA-1 de l'expression STRING ou BINARY expr et la renvoie sous forme de chaîne hexadécimale.

  • Paramètres

    expr : obligatoire. Valeur de type STRING ou BINARY.

  • Valeur de retour

    Renvoie une valeur de type STRING. Si le paramètre d'entrée est NULL, NULL est renvoyé.

  • Exemples

    • Exemple 1 : calcule la valeur de hachage SHA-1 de la chaîne ABC. Voici un exemple de commande.

      -- Returns 3c01bdbb26f358bab27f267924aa2c9a03fcfdb8.
      select sha1('ABC');
    • Exemple 2 : le paramètre d'entrée est NULL. Voici un exemple de commande.

      -- Returns NULL.
      select sha1(null);

SHA2

  • Syntaxe

    string sha2(string|binary <expr>, bigint <number>)
  • Description

    Calcule la valeur de hachage SHA-2 de l'expression STRING ou BINARY expr et la renvoie au format spécifié par number.

  • Paramètres

    • expr : obligatoire. Valeur de type STRING ou BINARY.

    • number : obligatoire. Valeur de type BIGINT. Longueur de bit du hachage. La valeur doit être 224, 256, 384, 512 ou 0 (identique à 256).

  • Valeur de retour

    Renvoie une valeur de type STRING. Les règles suivantes s'appliquent :

    • Si un paramètre d'entrée est NULL, NULL est renvoyé.

    • Si la valeur de number n'est pas dans la plage autorisée, NULL est renvoyé.

  • Exemples

    • Exemple 1 : calcule la valeur de hachage SHA-2 de la chaîne ABC. Voici un exemple de commande.

      -- Returns b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78.
      select sha2('ABC', 256);
    • Exemple 2 : un paramètre d'entrée est NULL. Voici un exemple de commande.

      -- Returns NULL.
      select sha2('ABC', null);

STACK

  • Syntaxe

    stack(n, expr1, ..., exprk) 
  • Description

    Divise expr1, ..., exprk en n lignes. Sauf indication contraire, la sortie utilise les noms de colonne par défaut col0, col1, ....

  • Paramètres

    • n : obligatoire. Nombre de lignes à générer.

    • expr : obligatoire. Les paramètres à diviser, expr1, ..., exprk, doivent être des entiers. Le nombre de paramètres doit être un multiple entier de n pour générer n lignes complètes. Sinon, une erreur est renvoyée.

  • Valeur de retour

    Renvoie un ensemble de données comportant n lignes. Le nombre de colonnes correspond au quotient du nombre de paramètres divisé par n.

  • Exemples

    -- Arrange 1, 2, 3, 4, 5, 6 into 3 rows.
    select stack(3, 1, 2, 3, 4, 5, 6);
    -- The following result is returned.
    +------+------+
    | col0 | col1 |
    +------+------+
    | 1    | 2    |
    | 3    | 4    |
    | 5    | 6    |
    +------+------+
    
    -- Arrange 'A',10,date '2015-01-01','B',20,date '2016-01-01' into two rows.
    select stack(2,'A',10,date '2015-01-01','B',20,date '2016-01-01') as (col0,col1,col2);
    -- The following result is returned.
    +------+------+------+
    | col0 | col1 | col2 |
    +------+------+------+
    | A    | 10   | 2015-01-01 |
    | B    | 20   | 2016-01-01 |
    +------+------+------+
    
    -- Arrange a, b, c, d into two rows. If the source table has multiple rows, the stack operation is performed row by row.
    select stack(2,a,b,c,d) as (col,value)
    from values 
        (1,1,2,3,4),
        (2,5,6,7,8),
        (3,9,10,11,12),
        (4,13,14,15,null)
    as t(key,a,b,c,d);
    -- The following result is returned.
    +------+-------+
    | col  | value |
    +------+-------+
    | 1    | 2     |
    | 3    | 4     |
    | 5    | 6     |
    | 7    | 8     |
    | 9    | 10    |
    | 11   | 12    |
    | 13   | 14    |
    | 15   | NULL  |
    +------+-------+
    
    -- Use with LATERAL VIEW.
    select tf.* from (select 0) t lateral view stack(2,'A',10,date '2015-01-01','B',20, date '2016-01-01') tf as col0,col1,col2;
    -- The following result is returned.
    +------+------+------+
    | col0 | col1 | col2 |
    +------+------+------+
    | A    | 10   | 2015-01-01 |
    | B    | 20   | 2016-01-01 |
    +------+------+------+

STR_TO_MAP

  • Syntaxe

    STR_TO_MAP([STRING <mapDupKeyPolicy>,] <text> [, <delimiter1> [, <delimiter2>]])
  • Description

    Utilise delimiter1 pour diviser text en paires clé-valeur, puis utilise delimiter2 pour séparer chaque paire clé-valeur en une clé et une valeur.

  • Paramètres

    • mapDupKeyPolicy : facultatif. Valeur de type STRING. Ce paramètre spécifie la méthode de traitement des clés en double. Valeurs valides :

      • exception : une erreur est renvoyée.

      • last_win : la dernière clé écrase la précédente.

      Vous pouvez également spécifier le paramètre odps.sql.map.key.dedup.policy au niveau de la session pour configurer la méthode de traitement des clés en double. Par exemple, vous pouvez définir odps.sql.map.key.dedup.policy sur exception. Si vous ne spécifiez pas ce paramètre, la valeur par défaut last_win est utilisée.

      Remarque

      L'implémentation du comportement de MaxCompute est déterminée par mapDupKeyPolicy. Si vous ne spécifiez pas mapDupKeyPolicy, la valeur de odps.sql.map.key.dedup.policy est utilisée.

    • text : obligatoire. Valeur de type STRING. Chaîne à diviser.

    • delimiter1 : facultatif. Valeur de type STRING. Séparateur. S'il n'est pas spécifié, la valeur par défaut est une virgule (,).

    • delimiter2 : facultatif. Valeur de type STRING. Séparateur. S'il n'est pas spécifié, la valeur par défaut est un signe égal (=).

      Remarque

      Si le séparateur est une expression régulière ou un caractère spécial, vous devez l'échapper avec deux barres obliques inverses (\\). Les caractères spéciaux incluent les deux-points (:), le point (.), le point d'interrogation (?), le signe plus (+) et l'astérisque (*).

  • Valeur de retour

    La valeur de retour est de type map<string, string>. La valeur de retour correspond au résultat de la division de text par delimiter1 et delimiter2.

  • Exemples

    -- Returns {test1:1, test2:2}.
    select str_to_map('test1&1-test2&2','-','&');
    -- Returns {test1:1, test2:2}.
    select str_to_map("test1.1,test2.2", ",", "\\.");
    -- Returns {test1:1, test2:3}.
    select str_to_map("test1.1,test2.2,test2.3", ",", "\\.");

TABLE_EXISTS

  • Syntaxe

    BOOLEAN TABLE_EXISTS(STRING <table_name>)
  • Description

    Vérifie l'existence d'une table spécifiée.

  • Paramètres

    table_name : obligatoire. Nom de la table. Valeur de type STRING. Le nom de la table peut inclure le nom du projet, par exemple my_proj.my_table. Si vous ne spécifiez pas de nom de projet, le projet actuel est utilisé par défaut.

  • Valeur de retour

    Renvoie une valeur de type BOOLEAN. La fonction renvoie True si la table spécifiée existe. Sinon, elle renvoie False.

  • Exemples

    -- Use in a SELECT list.
    select if(table_exists('abd'), col1, col2) from src;

TRANS_ARRAY

  • Limites

    • Toutes les colonnes utilisées comme keys doivent être placées en premier, et les colonnes à transposer doivent être placées après elles.

    • Une instruction SELECT ne peut contenir qu'une seule UDTF. Aucune autre colonne ne peut être incluse.

    • Ne peut pas être utilisée avec GROUP BY, CLUSTER BY, DISTRIBUTE BY ou SORT BY.

  • Syntaxe

    TRANS_ARRAY (<num_keys>, <separator>, <key1>,<key2>,…,<col1>,<col2>,<col3>) AS (<key1>,<key2>,...,<col1>, <col2>)
  • Description

    Fonction définie par l'utilisateur retournant une table (UDTF) qui convertit une ligne de données en plusieurs lignes. Elle transforme un tableau stocké dans une colonne et délimité par un séparateur fixe en plusieurs lignes.

  • Paramètres

    • num_keys : obligatoire. Constante BIGINT. La valeur doit être >=0. Nombre de colonnes à utiliser comme transpose keys lors de la conversion en plusieurs lignes.

    • separator : obligatoire. Constante STRING. Séparateur utilisé pour diviser la chaîne en plusieurs éléments. Si ce paramètre est vide, une erreur est renvoyée.

    • keys : obligatoire. Colonnes à utiliser comme keys lors de la transposition. Le nombre de colonnes est spécifié par num_keys. Si num_keys spécifie que toutes les colonnes sont utilisées comme keys (c'est-à-dire si num_keys est égal au nombre total de colonnes), une seule ligne est renvoyée.

    • cols : obligatoire. Tableaux à convertir en lignes. Toutes les colonnes situées après les keys sont considérées comme des tableaux à transposer. Elles doivent être de type STRING et stocker des tableaux au format chaîne, tels que Hangzhou;Beijing;Shanghai, qui est un tableau délimité par des points-virgules (;).

  • Valeur de retour

    Renvoie les lignes transposées. Les nouveaux noms de colonne sont spécifiés par AS. Les types de données des colonnes utilisées comme keys restent inchangés. Toutes les autres colonnes sont de type STRING. Le nombre de lignes résultantes est déterminé par le tableau comportant le plus d'éléments. Les tableaux plus courts sont complétés par NULL.

  • Exemples

    • Exemple 1 : la table t_table contient les données suivantes.

      +----------+----------+------------+
      | login_id | login_ip | login_time |
      +----------+----------+------------+
      | wangwangA | 192.168.0.1,192.168.0.2 | 20120101010000,20120102010000 |
      | wangwangB | 192.168.45.10,192.168.67.22,192.168.6.3 | 20120111010000,20120112010000,20120223080000 |
      +----------+----------+------------+
      -- Run the SQL statement.
      select trans_array(1, ",", login_id, login_ip, login_time) as (login_id,login_ip,login_time) from t_table;
      -- The following result is returned.
      +----------+----------+------------+
      | login_id | login_ip | login_time |
      +----------+----------+------------+
      | wangwangB | 192.168.45.10 | 20120111010000 |
      | wangwangB | 192.168.67.22 | 20120112010000 |
      | wangwangB | 192.168.6.3 | 20120223080000 |
      | wangwangA | 192.168.0.1 | 20120101010000 |
      | wangwangA | 192.168.0.2 | 20120102010000 |
      +----------+----------+------------+
      
      -- If the table contains the following data.
      Login_id LOGIN_IP LOGIN_TIME 
      wangwangA 192.168.0.1,192.168.0.2 20120101010000
      -- The insufficient data in the array is padded with NULL. 
      Login_id Login_ip Login_time 
      wangwangA 192.168.0.1 20120101010000
      wangwangA 192.168.0.2 NULL
    • Exemple 2 : la table mf_fun_array_test_t contient les données suivantes.

      +------------+------------+------------+------------+
      | id         | name       | login_ip   | login_time |
      +------------+------------+------------+------------+
      | 1          | Tom        | 192.168.100.1,192.168.100.2 | 20211101010101,20211101010102 |
      | 2          | Jerry      | 192.168.100.3,192.168.100.4 | 20211101010103,20211101010104 |
      +------------+------------+------------+------------+
      
      -- Use two keys, id and name, to convert to an array. Run the SQL statement.
      select trans_array(2, ",", Id,Name, login_ip, login_time) as (Id,Name,login_ip,login_time) from mf_fun_array_test_t;
      -- The following result is returned. The data is split and grouped by the keys id and name.
      +------------+------------+------------+------------+
      | id         | name       | login_ip   | login_time |
      +------------+------------+------------+------------+
      | 1          | Tom        | 192.168.100.1 | 20211101010101 |
      | 1          | Tom        | 192.168.100.2 | 20211101010102 |
      | 2          | Jerry      | 192.168.100.3 | 20211101010103 |
      | 2          | Jerry      | 192.168.100.4 | 20211101010104 |
      +------------+------------+------------+------------+

TRANS_COLS

  • Limites

    • Toutes les colonnes utilisées comme keys doivent être placées en premier, et les colonnes à transposer doivent être placées après elles.

    • Une instruction SELECT ne peut contenir qu'une seule UDTF. Aucune autre colonne ne peut être incluse.

  • Syntaxe

    TRANS_COLS (<num_keys>, <key1>,<key2>,…,<col1>, <col2>,<col3>) AS (<idx>, <key1>,<key2>,…,<col1>, <col2>)
  • Description

    UDTF qui convertit une ligne de données en plusieurs lignes. Elle répartit différentes colonnes sur différentes lignes.

  • Paramètres

    • num_keys : obligatoire. Constante BIGINT. La valeur doit être >=0. Nombre de colonnes à utiliser comme transpose keys lors de la conversion en plusieurs lignes.

    • keys : obligatoire. Colonnes à utiliser comme keys lors de la transposition. Le nombre de colonnes est spécifié par num_keys. Si num_keys spécifie que toutes les colonnes sont utilisées comme keys (c'est-à-dire si num_keys est égal au nombre total de colonnes), une seule ligne est renvoyée.

    • idx : obligatoire. Numéro de ligne après conversion.

    • cols : obligatoire. Colonnes à convertir en lignes.

  • Valeur de retour

    Renvoie les lignes transposées. Les nouveaux noms de colonne sont spécifiés par AS. La première colonne de la sortie est l'index de transposition, qui commence à 1. Les types de données des colonnes utilisées comme clés restent inchangés. Toutes les autres colonnes conservent leurs types de données d'origine.

  • Exemples

    La table t_table contient les données suivantes.

    +----------+----------+------------+
    | Login_id | Login_ip1 | Login_ip2 |
    +----------+----------+------------+
    | wangwangA | 192.168.0.1 | 192.168.0.2 |
    +----------+----------+------------+
    -- Run the SQL statement.
    select trans_cols(1, login_id, login_ip1, login_ip2) as (idx, login_id, login_ip) from t_table;
    -- The following result is returned.
    idx    login_id    login_ip
    1    wangwangA    192.168.0.1
    2    wangwangA    192.168.0.2

UNIQUE_ID

  • Syntaxe

    string unique_id()
  • Description

    Renvoie un ID unique aléatoire, tel que 29347a88-1e57-41ae-bb68-a9edbdd9****_1. Cette fonction est plus efficace que la fonction UUID et renvoie un ID plus long. Par rapport à un UUID, cet ID inclut un trait de soulignement supplémentaire (_) et un nombre, tel que _1.

UUID

  • Syntaxe

    string uuid()
  • Description

    Renvoie un ID aléatoire, tel que 29347a88-1e57-41ae-bb68-a9edbdd9****.

    Remarque

    UUID renvoie un ID global aléatoire dont la probabilité de répétition est très faible.