SnowConvert AI - Teradata - Modes de session dans Teradata¶
Description des modes de session Teradata¶
La base de données Teradata dispose de différents modes d’exécution des requêtes : Mode ANSI (règles basées sur les spécifications ANSI SQL : 2011) et mode TERA (règles définies par Teradata). Pour plus d’informations, veuillez consulter la documentation Teradata suivante.
Mode Teradata pour les tables d’informations sur les chaînes¶
Pour les chaînes, le mode Teradata fonctionne différemment. Comme l’explique la table suivante, basée sur la documentation Teradata :
Fonctionnalité |
Mode ANSI |
Mode Teradata |
|---|---|---|
Attribut par défaut pour les comparaisons de caractères |
CASESPECIFIC |
NOT CASESPECIFIC |
Comportement TRIM par défaut |
TRIM(BOTH FROM) |
TRIM(BOTH FROM) |
Résumé des spécifications de traduction¶
| Mode | Column constraint values | Teradata behavior | SC expected behavior |
|---|---|---|---|
| ANSI Mode | CASESPECIFIC | CASESPECIFIC | No constraint added. |
| NOT CASESPECIFIC | CASESPECIFIC | Add COLLATE 'en-cs' in column definition. | |
| Teradata Mode | CASESPECIFIC | CASESPECIFIC | In most cases, do not add COLLATE, and convert its usages of string comparison to RTRIM( expression ) |
| NOT CASESPECIFIC | NOT CASESPECIFIC | In most cases, do not add COLLATE, and convert its usages of string comparison to RTRIM(UPPER( expression )) |
Options de spécification de traduction disponibles¶
Mode ANSI pour la comparaison des chaînes - COLLATE¶
Cette section définit la spécification de traduction d’une chaîne en mode ANSI avec l’utilisation de COLLATE.
Description ¶
Mode ANSI pour la comparaison des chaînes et l’utilisation de COLLATE¶
La comparaison de chaînes en mode ANSI appliquera la contrainte COLLATE aux colonnes ou aux instructions selon les exigences. Le comportement de suppression des espaces par défaut dans la définition des cas peut être pris en compte.
Notez que dans Teradata, la spécification de casse par défaut est “CASESPECIFIC”, la même valeur par défaut que dans Snowflake “case-sensitive'. Ainsi, ces casses ne seront pas traduits avec un COLLATE car il sera redondant.
Échantillons de modèles de sources ¶
Données de configuration¶
Teradata¶
Snowflake¶
Opération de comparaison¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Cas 3 : La colonne CAST NOT CASESPECIFIC est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Note
COLLATE “en-cs” est exigé pour l’équivalence fonctionnelle.
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 4 : La colonne CAST CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Cas 5 : la colonne CAST NOT CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Note
Requiert COLLATE.
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Fonctionnement LIKE¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
Cas 3 : La colonne CAST NOT CASESPECIFIC est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Cas 4 : La colonne CAST CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
Fonctionnement IN¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Note
Ce cas nécessite COLLATE(_ column_name_ , 'en-cs-rtrim')
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Note
Dans ce cas, la colonne n’a pas de contrainte de colonne, mais la contrainte par défaut en mode Teradata ANSI est CASESPECIFIC.
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Clause ORDER BY¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
first_name |
|---|
GeorgE |
GEORGE |
GEORGE |
George |
John |
JOHN |
JOHN |
Marco |
Mary |
WIlle |
Snowflake¶
Avertissement
Veuillez consulter FDM. _ En attente d’ajout. _
Requête¶
Sortie¶
first_name |
|---|
GeorgE |
George |
GEORGE |
GEORGE |
John |
JOHN |
JOHN |
Marco |
Mary |
WIlle |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
department |
|---|
EngineerinG |
Engineering |
Finances |
Ressources humaines |
IT |
SalEs |
SaleS |
Sales |
salEs |
sales |
Snowflake¶
Requête¶
Sortie¶
department |
|---|
EngineerinG |
Engineering |
Finances |
Ressources humaines |
IT |
SalEs |
SaleS |
Sales |
salEs |
sales |
Clause GROUP BY¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
JOHN |
Marco |
GEORGE |
Snowflake¶
Avertissement
La casse ou l’ordre peut générer une sortie différente.
Note
RTRIM est exigé dans les colonnes sélectionnées.
Requête¶
Sortie¶
first_name |
|---|
John |
Marco |
George |
GeorgE |
WIlle |
Mary |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Note
L’ordre peut différer.
Requête¶
Sortie¶
first_name |
|---|
Snow |
SNOW |
SnoW |
SnoW |
snow |
Clause HAVING¶
La clause HAVING utilisera les modèles dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
Snowflake¶
Requête¶
Sortie¶
Instruction CASE WHEN¶
L’instruction CASE WHEN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Teradata¶
Requête¶
Sortie¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
Autre |
|
Mary |
Autre |
|
GeorgE |
GLOBAL SALES |
|
GEORGE |
Autre |
Snowflake¶
Requête¶
Sortie¶
first_name |
last_name |
department_full_name |
|---|---|---|
Mary |
Autre |
|
GEORGE |
Autre |
|
GEORGE |
Autre |
|
GeorgE |
GLOBAL SALES |
Clause JOIN¶
Avertissement
Les scénarios simples avec des opérations d’évaluation sont pris en charge.
L’instruction JOIN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Sales |
10 |
JOHN |
snow |
Finances |
Snowflake¶
Note
d.department_name est NOT CASESPECIFIC, il faut donc COLLATE.
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Sales |
10 |
JOHN |
snow |
Finances |
Mode ANSI pour la comparaison des chaînes - NOCOLLATE¶
Cette section définit la spécification de traduction d’une chaîne en mode ANSI sans utilisation de COLLATE.
Description ¶
ANSI mode for string comparison and NO COLLATE usages.¶
La comparaison de chaînes en mode ANSI sans l’utilisation de COLLATE appliquera RTRIM et UPPER si nécessaire. Le comportement de suppression des espaces par défaut dans la définition des casses peut être pris en compte. Ainsi, si une colonne n’a pas de spécification de casse en mode Teradata ANSI, Teradata aura comme valeur par défaut CASESPECIFIC.
Échantillons de modèles de sources ¶
Données de configuration¶
Teradata¶
Snowflake¶
Opération de comparaison¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Cas 3 : la colonne CAST NOT CASESPECIFIC est CASESPECIFIC et le mode de la base de données est ANSI¶
Avertissement
(CASESPECIFIC) remplace la contrainte de colonne dans la définition de la table.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Cas 4 : La colonne CAST CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Fonctionnement LIKE¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 3 : la colonne CAST NOT CASESPECIFIC est NOTCASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 4 : La colonne CAST CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
Fonctionnement IN¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Clause ORDER BY¶
Note
Notez que cette équivalence fonctionnelle peut être différente.
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
department |
|---|
EngineerinG |
Engineering |
Finances |
Ressources humaines |
IT |
SalEs |
SaleS |
Sales |
salEs |
sales |
Snowflake¶
Note
Veuillez consulter FDM. L’ordre diffère selon l’ordre d’insertion des données.
Requête¶
Sortie¶
department |
|---|
EngineerinG |
Engineering |
Finances |
Ressources humaines |
IT |
SalEs |
SaleS |
Sales |
salEs |
sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
department |
|---|
Finances |
Ressources humaines |
Technologie de l’information |
Sales |
Snowflake¶
Requête¶
Sortie¶
department |
|---|
Finances |
Ressources humaines |
Technologie de l’information |
Sales |
Clause GROUP BY¶
Avertissement
Pour garantir une équivalence fonctionnelle, il est nécessaire d’utiliser l’expression COLLATE.
Pour plus d’informations, veuillez vous référer à SSC-EWI-TD0007.
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
John |
Marco |
GEORGE |
Snowflake¶
Requête¶
Sortie¶
FIRST_NAME |
|---|
George |
John |
WIlle |
Marco |
Mary |
GEORGE |
GEORGE |
GeorgE |
JOHN |
JOHN |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Clause HAVING¶
La clause HAVING utilisera les modèles dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
Snowflake¶
Requête¶
Sortie¶
Instruction CASE WHEN¶
L’instruction CASE WHEN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Teradata¶
Requête¶
Sortie¶
| first_name | last_name | department_full_name |
|---|---|---|
| GEORGE | Department Full Name | |
| Mary | GLOBAL SALES | |
| GeorgE | Other | |
| GEORGE | Department Full Name |
Snowflake¶
Requête¶
Sortie¶
| first_name | last_name | department_full_name |
|---|---|---|
| GEORGE | Department Full Name | |
| Mary | GLOBAL SALES | |
| GeorgE | Other | |
| GEORGE | Department Full Name |
Clause JOIN¶
Avertissement
Des scénarios simples sont pris en charge.
L’instruction JOIN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est ANSI¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Sales |
10 |
JOHN |
snow |
Finances |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Sales |
10 |
JOHN |
snow |
Finances |
EWIs connexes¶
SSC-EWI-TD0007 - GROUP BY IS NOT EQUIVALENT IN TERADATA MODE
Mode TERA pour la comparaison des chaînes - COLLATE¶
Cette section définit la spécification de traduction pour la chaîne en mode Tera avec l’utilisation de COLLATE.
Description ¶
Mode Tera pour la comparaison des chaînes et l’utilisation de COLLATE¶
La comparaison de chaînes en mode Tera appliquera la contrainte COLLATE aux colonnes ou aux instructions, selon les besoins. Le comportement de suppression des espaces par défaut dans la définition des cas peut être pris en compte. La spécification de casse par défaut dans Teradata pour le mode TERA est NOT CASESPECIFIC. Ainsi, les colonnes sans spécification de casse auront des contraintes COLLATE('en-ci').
Échantillons de modèles de sources ¶
Données de configuration¶
Teradata¶
Snowflake¶
Opération de comparaison¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Cas 3 : La colonne CAST NOT CASESPECIFIC est CASESPECIFIC et le mode de la base de données est TERA¶
Note
Remarquez que les requêtes suivantes
SELECT * FROM employees WHERE first_name = 'JOHN ' (CASESPECIFIC)SELECT * FROM employees WHERE first_name (CASESPECIFIC) = 'JOHN '
renverront les mêmes valeurs.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
9 |
JOHN |
SnoW |
IT |
10 |
JOHN |
snow |
Finances |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
9 |
JOHN |
SnoW |
IT |
10 |
JOHN |
snow |
Finances |
Cas 4 : La colonne CAST CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Note
CAST vers une colonne de la partie gauche de la comparaison est prioritaire.
\ Par exemple :
SELECT * FROM employees WHERE last_name (NOT CASESPECIFIC) = 'snoW';_renverra 5 lignes. _SELECT * FROM employees WHERE last_name = 'snoW' (NOT CASESPECIFIC);renverra 0 lignes avec ces données de configuration.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
4 |
Marco |
SnoW |
EngineerinG |
10 |
JOHN |
snow |
Finances |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
2 |
John |
SNOW |
Engineering |
3 |
WIlle |
SNOW |
Ressources humaines |
4 |
Marco |
SnoW |
EngineerinG |
10 |
JOHN |
snow |
Finances |
Fonctionnement LIKE¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 3 : La colonne CAST NOT CASESPECIFIC est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
Cas 4 : La colonne CAST CASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Fonctionnement IN¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 2 : La contrainte de colonne n’est pas définie et le mode de la base de données est TERA¶
Note
En mode Tera, une spécification de casse non définie signifie NOT CASESPECIFIC.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
5 |
Mary |
SaleS |
|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
|
8 |
GeorgE |
SalEs |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
5 |
Mary |
SaleS |
|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
|
8 |
GeorgE |
SalEs |
Cas 3 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Clause ORDER BY¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
| employee_id | first_name |
|---|---|
| 1 | George |
| 2 | John |
| 3 | WIlle |
| 4 | Marco |
| 5 | Mary |
| 6 | GEORGE |
| 7 | GEORGE |
| 8 | GeorgE |
| 9 | JOHN |
| 10 | JOHN |
Snowflake¶
Requête¶
Sortie¶
| employee_id | first_name |
|---|---|
| 1 | George |
| 2 | John |
| 3 | WIlle |
| 4 | Marco |
| 5 | Mary |
| 6 | GEORGE |
| 7 | GEORGE |
| 8 | GeorgE |
| 9 | JOHN |
| 10 | JOHN |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
| employee_id | last_name |
|---|---|
| 1 | Snow |
| 2 | SNOW |
| 3 | SNOW |
| 4 | SnoW |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | SnoW |
| 10 | snow |
Snowflake¶
Requête¶
Sortie¶
| employee_id | last_name |
|---|---|
| 1 | Snow |
| 2 | SNOW |
| 3 | SNOW |
| 4 | SnoW |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | SnoW |
| 10 | snow |
Clause GROUP BY¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
JOHN |
Marco |
GEORGE |
Snowflake¶
Avertissement
La spécification des casses dans la sortie peut varier en fonction du nombre de colonnes sélectionnées.
Requête¶
Sortie¶
first_name |
|---|
John |
Marco |
George |
GeorgE |
WIlle |
Mary |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Clause HAVING¶
La clause HAVING utilisera les modèles dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Note
La spécification des casses dans la sortie peut varier en fonction du nombre de colonnes sélectionnées. Ceci est également lié à la clause GROUP BY.
Requête¶
Sortie¶
| employee_id | first_name |
|---|---|
| 7 | GEORGE |
| 1 | George |
| 6 | GEORGE |
Snowflake¶
Requête¶
Sortie¶
| employee_id | first_name |
|---|---|
| 7 | GEORGE |
| 1 | George |
| 6 | GEORGE |
Instruction CASE WHEN¶
L’instruction CASE WHEN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Teradata¶
Requête¶
Sortie¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
GLOBAL SALES |
|
Mary |
Autre |
|
GeorgE |
Autre |
|
GEORGE |
GLOBAL SALES |
Snowflake¶
Requête¶
Sortie¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
GLOBAL SALES |
|
Mary |
Autre |
|
GeorgE |
Autre |
|
GEORGE |
GLOBAL SALES |
Clause JOIN¶
Avertissement
Les scénarios simples avec des opérations d’évaluation sont pris en charge.
L’instruction JOIN utilisera les modèles décrits dans :
Evaluation of comparison operations.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Sales |
3 |
WIlle |
SNOW |
Ressources humaines |
5 |
Mary |
Sales |
|
6 |
GEORGE |
Sales |
|
7 |
GEORGE |
Sales |
|
8 |
GeorgE |
Sales |
|
10 |
JOHN |
snow |
Finances |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Sales |
3 |
WIlle |
SNOW |
Ressources humaines |
5 |
Mary |
Sales |
|
6 |
GEORGE |
Sales |
|
7 |
GEORGE |
Sales |
|
8 |
GeorgE |
Sales |
|
10 |
JOHN |
snow |
Finances |
EWIs connexes¶
SSC-EWI-TD0007 : GROUP BY REQUIRED COLLATE FOR CASE INSENSITIVE COLUMNS
SC-FDM-TD0032 : [NOT] CASESPECIFIC CLAUSE WAS REMOVED
Mode TERA pour la comparaison des chaînes - NOCOLLATE¶
Cette section définit la spécification de traduction pour la chaîne en mode Tera sans utiliser COLLATE.
Description ¶
Mode Tera pour la comparaison des chaînes et les utilisations de NOCOLLATE¶
La comparaison de chaînes en mode Tera sans l’utilisation de COLLATE appliquera RTRIM et UPPER si nécessaire. Le comportement de suppression des espaces par défaut dans la définition des cas peut être pris en compte.
Échantillons de modèles de sources ¶
Données de configuration¶
Teradata¶
Snowflake¶
Opération de comparaison¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Cet exemple montre l’utilisation d’une colonne définie comme NOT CASESPECIFIC car il s’agit d’une colonne first_name. Même si vous demandez la chaîne 'GEorge',, l’exécution de la requête récupérera des résultats dans Teradata parce que la spécification de casse n’est pas prise en compte.
Pour reproduire ce scénario dans Snowflake, deux fonctions sont mises en œuvre : RTRIM(UPPER(string_evaluation)), UPPER est nécessaire dans ce scénario parce que la chaîne ne passe pas en revue la spécification de casse.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Pour cet exemple, la contrainte de colonne est CASESPECIFIC, pour laquelle l’exemple ne récupère pas de lignes dans Teradata parce que “Snow” n’est pas égal à “SNOW”.
Dans Snowflake, la migration qui en résulte n’indique que l’utilisation de la fonction RTRIM puisque la spécification de la casse est importante.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Ressources humaines |
2 |
John |
SNOW |
Engineering |
Cas 3 : la colonne CAST CASESPECIFIC est NOTCASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Avertissement
(CASESPECIFIC) remplace la contrainte de colonne dans la définition de la table.
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Snowflake¶
Note
RTRIM est exigé du côté gauche, et RTRIM est exigé du côté droit.
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Cas 4 : La colonne CAST NOTCASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 5 : Cas des espaces vides. La contrainte de colonne est NOT CASESPECIFIC, le mode de la base de données est TERA et l’opération equal est utilisée¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
5 |
Mary |
SaleS |
|
8 |
GeorgE |
SalEs |
|
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
5 |
Mary |
SaleS |
|
8 |
GeorgE |
SalEs |
|
6 |
GEORGE |
sales |
Fonctionnement LIKE¶
Note
Cette opération fonctionne différemment d’une autre. Les espaces vides doivent être de la même quantité pour récupérer l’information.
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Cet exemple ne devrait afficher qu’une seule ligne, car la spécification de la casse n’est pas pertinente.
Note
Dans Snowflake, la migration utilise l’opération ILIKE. Cette opération permet d’effectuer une comparaison insensible à la casse.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
first_name |
last_name |
department |
|---|---|---|
George |
Snow |
Sales |
Jonh |
Snow |
Engineering |
Snowflake¶
Requête¶
Sortie¶
first_name |
last_name |
department |
|---|---|---|
George |
Snow |
Sales |
Jonh |
Snow |
Engineering |
Cas 3 : la colonne CAST CASESPECIFIC est NOTCASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 4 : La colonne CAST NOTCASESPECIFIC est NOT CASESPECIFIC et le mode de la base de données est ANSI¶
Note
Cette casse nécessite la traduction en ILIKE.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Fonctionnement IN¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Sales |
6 |
GEORGE |
sales |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Pour cet exemple, l’utilisation de la fonction UPPER n’est pas nécessaire puisque, dans la base de données Teradata, la spécification de la casse est pertinente pour les résultats.
Teradata¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Snowflake¶
Requête¶
Sortie¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Clause ORDER BY¶
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Danger
Notez que l’ordre de sortie peut être différent.
Teradata¶
Requête¶
Sortie¶
department |
|---|
EngineerinG |
Engineering |
Finances |
Ressources humaines |
IT |
sales |
SalEs |
Sales |
SaleS |
salEs |
Snowflake¶
Requête¶
Sortie¶
department |
|---|
EngineerinG |
Engineering |
Finances |
Ressources humaines |
IT |
sales |
SalEs |
Sales |
SaleS |
salEs |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Danger
Notez que cette sortie peut être différente dans l’ordre.
Teradata¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SNOW |
SnoW |
Snow |
snow |
Clause GROUP BY¶
Avertissement
Notez que cette sortie peut être différente. Pour garantir une équivalence fonctionnelle, il est nécessaire d’utiliser l’expression COLLATE.
Veuillez consulter SSC-EWI-TD0007 pour de plus amples informations.
Ce qui suit pourrait être une solution de contournement sans collate :
SELECTRTRIM(UPPER(first_name))
FROM employees
GROUP BY RTRIM(UPPER(first_name));
À propos du comportement de la colonne
Danger
Veuillez revoir l’insertion des données dans Snowflake. Snowflake autorise l’insertion de valeurs telles que « GEORGE » et « georges » sans afficher d’erreurs parce que la spécification de la casse n’est pas liée explicitement à la colonne.
Supposons une table et les données suivantes :
Notez que cet échantillon ne permet pas d’insérer des valeurs avec des casses majuscules et minuscules dans la colonne NOT CASESPECIFIC car il considère qu’il s’agit de la même valeur. Comme la colonne ne supervise pas la spécification de la casse, les valeurs « GEORGE » et « george » sont vérifiées comme étant la même information.
Les lignes suivantes sont considérées comme des erreurs de lignes dupliquées :
Cas 1 : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
JOHN |
Marco |
GEORGE |
Snowflake¶
Requête¶
Sortie¶
first_name |
|---|
George |
John |
WIlle |
Marco |
Mary |
GEORGE |
GEORGE |
GeorgE |
JOHN |
JOHN |
Cas 2 : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Requête¶
Sortie¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Clause HAVING¶
La clause HAVING utilisera les modèles dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
last_name |
|---|
Snow |
Snowflake¶
Requête¶
Sortie¶
last_name |
|---|
Snow |
Instruction CASE WHEN¶
L’instruction CASE WHEN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Teradata¶
Requête¶
Sortie¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
Autre |
|
JOHN |
SnoW |
Autre |
Mary |
Autre |
|
JOHN |
snow |
Autre |
WIlle |
SNOW |
GLOBAL COOL SALES |
George |
Snow |
Autre |
GeorgE |
Autre |
|
GEORGE |
Autre |
|
Marco |
SnoW |
Technologie de l’information |
John |
SNOW |
Technologie de l’information |
Snowflake¶
Requête¶
Sortie¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
Autre |
|
JOHN |
SnoW |
Autre |
Mary |
Autre |
|
JOHN |
snow |
Autre |
WIlle |
SNOW |
GLOBAL COOL SALES |
George |
Snow |
Autre |
GeorgE |
Autre |
|
GEORGE |
Autre |
|
Marco |
SnoW |
Technologie de l’information |
John |
SNOW |
Technologie de l’information |
Clause JOIN¶
Avertissement
Des scénarios simples sont pris en charge.
L’instruction JOIN utilisera les modèles décrits dans :
Opérations d’évaluation.
Par exemple :
=, !=, <, >.
Opération LIKE.
Opération IN.
Opération CAST pour évaluation.
Opération CAST vers LIKE.
L’échantillon suivant présente un modèle avec une opération d’évaluation.
Échantillon : La contrainte de colonne est NOT CASESPECIFIC et le mode de la base de données est TERA¶
Teradata¶
Requête¶
Sortie¶
| employee_id | first_name | last_name | department_name |
|---|---|---|---|
| 1 | George | Snow | Sales |
| 3 | WIlle | SNOW | Human Resources |
| 5 | Mary | Sales | |
| 6 | GEORGE | Sales | |
| 7 | GEORGE | Sales | |
| 8 | GeorgE | Sales | |
| 10 | JOHN | snow | Finance |
Snowflake¶
Requête¶
Sortie¶
| employee_id | first_name | last_name | department_name |
|---|---|---|---|
| 1 | George | Snow | Sales |
| 3 | WIlle | SNOW | Human Resources |
| 5 | Mary | Sales | |
| 6 | GEORGE | Sales | |
| 7 | GEORGE | Sales | |
| 8 | GeorgE | Sales | |
| 10 | JOHN | snow | Finance |
Problèmes connus¶
il existe des restrictions d’instruction SQL spécifiques à certains modes :
BEGIN TRANSACTION,END TRANSACTION,COMMIT [WORK].L’insertion de données peut être différente dans Snowflake puisque la spécification de casse n’est pas liée à la déclaration de colonne.
GROUP BYpeut différer dans l’ordre, mais regroupe les valeurs correctes.ORDER BYse comporte différemment dans Snowflake.Si une fonction comporte un TRIM() dans le code source, cette solution de contournement ajoutera les fonctions requises au code source. Ainsi, RTRIM sera appliqué à la fonction source TRIM().
EWIs connexes¶
SSC-EWI-TD0007: GROUP BY IS NOT EQUIVALENT IN TERADATA MODE