SnowConvert AI - IBM DB2 - SELECT STATEMENT

Description

Une sous-division de l’instruction SELECT effectuée dans IBM DB2.

Cliquez ici pour naviguer vers la page de documentation IBM DB2 pour cette syntaxe.

Grammar Syntax

image

Clause From

Toutes les informations relatives à cette partie de la syntaxe sont spécifiées sur la page from-clause.

Clause Where

La clause WHERE spécifie une table de résultats intermédiaire constituée des lignes de R pour lesquelles la condition de recherche est vraie. R est le résultat de la clause FROM de la sous-sélection.

Cliquez ici pour naviguer vers la page de documentation IBM DB2 pour cette syntaxe.

Grammar Syntax

image

SuccessPlaceholder

Toute la grammaire spécifiée dans cette clause Where de DB2 est conforme à l’ANSI, équivalente à Snowflake, et est donc traduite telle quelle par SnowConvert AI.

Clause Group By

La clause GROUP BY spécifie une table de résultats intermédiaire qui consiste en un regroupement des lignes de R. R est le résultat de la clause précédente de la sous-sélection.

Cliquez ici pour naviguer vers la page de documentation IBM DB2 pour cette syntaxe.

Grammar Syntax

image

Aucune référence de colonne explicite

Les expressions suivantes, qui ne contiennent aucune référence de colonne explicite, peuvent être utilisées dans une expression de regroupement pour identifier une colonne de R :

  • Concepteur de tables ROW CHANGE TIMESTAMP FOR

  • Concepteur de tables ROW CHANGE TOKEN FOR

  • Fonction scalaire RID_BIT ou RID

Les expressions ROW CHANGE et les fonctions scolaires RID/RID_BIT ne sont pas prises en charge dans Snowflake.

Modèles d’échantillons de sources

IBM DB2
select * from product group by ROW CHANGE TIMESTAMP FOR product;
Copy
Snowflake
select * from
 product
--!!!RESOLVE EWI!!! /*** SSC-EWI-0021 - GROUP BY ROW CHANGE TIMESTAMP FOR NOT SUPPORTED IN SNOWFLAKE ***/!!!
--group by ROW CHANGE TIMESTAMP FOR product
                                         ;
Copy
IBM DB2
    select * from product group by RID();
Copy
Snowflake
select * from
 product
--!!!RESOLVE EWI!!! /*** SSC-EWI-0021 - GROUP BY scalar function RID NOT SUPPORTED IN SNOWFLAKE ***/!!!
--group by RID()
              ;
Copy
  1. SSC-EWI-0021 :

Clause Fetch

Description

Définit un nombre maximum de lignes à récupérer.

Cliquez ici pour naviguer vers la page de documentation IBM DB2 pour cette syntaxe.

Grammar Syntax

image

Sample Source Patterns

Récupération sans nombre de lignes

IBM DB2
 SELECT * FROM Product FETCH First Row ONLY;
/* or */
SELECT * FROM Product FETCH First Rows ONLY;
/* or */
SELECT * FROM Product FETCH Next Row ONLY;
/* or */
SELECT * FROM Product FETCH Next Rows ONLY;
Copy
Snowflake
SELECT * FROM
   Product
FETCH NEXT 1 ROW ONLY;
Copy

Clause Offset

Description

Définit le nombre de lignes à sauter.

Cliquez ici pour naviguer vers la page de documentation IBM DB2 pour cette syntaxe.

Grammar Syntax

image

image

Sample Source Patterns

Décalage du nombre de lignes

IBM DB2
 SELECT * FROM Product OFFSET 3 ROW;
/* or */
SELECT * FROM Product OFFSET 3 ROWS;
Copy
Snowflake
SELECT * FROM
   Product
LIMIT NULL
OFFSET 3;
Copy

Limite X,Y

IBM DB2
SELECT * FROM Product LIMIT 3,2;
Copy
Snowflake
SELECT * FROM
   Product
OFFSET 3 ROWS
FETCH NEXT 2 ROWS ONLY;
Copy

Clause Order By

Description

La clause ORDER BY spécifie un classement des lignes de la table de résultats.

Cliquez ici pour naviguer vers la page de documentation IBM DB2 pour cette syntaxe.

Grammar Syntax

image

image

Sample Source Patterns

Les seuls chemins de ORDER BY dans Db2 qui ne sont pas pris en charge dans Snowflake sont ceux utilisés avec ORDER OF et INPUT SEQUENCE ; par conséquent, si ceux-ci sont présents, la clause sera marquée d’un EWI.

Exemples de IBM DB2 non pris en charge

Select * from ORDERBYTest ORDER BY ORDER OF TableDesignator;
Select * from ORDERBYTest ORDER BY INPUT SEQUENCE;
Copy
Snowflake
Select * from
   ORDERBYTest
!!!RESOLVE EWI!!! /*** SSC-EWI-0021 - ORDER BY ORDER OF NOT SUPPORTED IN SNOWFLAKE ***/!!!
ORDER BY ORDER OF TableDesignator;


Select * from
   ORDERBYTest
!!!RESOLVE EWI!!! /*** SSC-EWI-0021 - ORDER BY INPUT SEQUENCE NOT SUPPORTED IN SNOWFLAKE ***/!!!
ORDER BY INPUT SEQUENCE;
Copy

Related EWIs

  1. SSC-EWI-0021 : NODE NOT SUPPORTED

Clause Values

Description

Dérive une table de résultats en spécifiant les valeurs réelles, à l’aide d’expressions ou d’expressions de ligne, pour chaque colonne d’une ligne dans la table de résultats.

Note

La clause VALUES n’est pas prise en charge dans Snowflake. Pour cette raison, elle est traduite en une instruction SELECT, comme montré dans les exemples ci-dessous.

Grammar Syntax

image

Modèles d’échantillons de sources

La clause Values n’est pas prise en charge dans Snowflake. Pour cette raison, la clause Values est traduite en une requête de sélection.

IBM DB2

VALUES 1, 2, 3
Copy

1

2

3

Snowflake
SELECT 1, 2, 3
Copy

1

2

3

Pour les valeurs avec plusieurs lignes, une Union est utilisée :

IBM DB2
VALUES (1, 1, 1),
    (2, 2, 2), 
    (3, 3, 3)
Copy

1

1

1

2

2

2

3

3

3

Snowflake
SELECT
   1, 1, 1
UNION
SELECT
   2, 2, 2
UNION
SELECT
   3, 3, 3
Copy

1

1

1

2

2

2

3

3

3

Clauses supprimées

Description

Les clauses suivantes sont supprimées, car elles ne sont pas applicables dans Snowflake :

  • FOR READ ONLY

  • Clause Update

  • Clause Optimize for

  • Clause Concurrent access resolution

  • Clause Isolation

Modèles d’échantillons de sources

IBM DB2

-- For Read Only
SELECT
   *
FROM
   Table1
FOR READ ONLY;


-- Update Clause
SELECT
   *
FROM
   Table1
FOR UPDATE OF
   COL1,
   COL2;


--Optimize For Clause
SELECT
   *
FROM
   Table1
OPTIMIZE FOR 2 ROWS;


-- Concurrent access resolution Clause
SELECT
   *
FROM
   Table1
WAIT FOR OUTCOME;


-- Isolation Clause
SELECT
   *
FROM
   Table1
WITH RR USE AND KEEP EXCLUSIVE LOCKS;
Copy
Snowflake
-- For Read Only
SELECT
   *
FROM
   Table1;


-- Update Clause
SELECT
   *
FROM
   Table1;


--Optimize For Clause
SELECT
   *
FROM
   Table1;


-- Concurrent access resolution Clause
SELECT
   *
FROM
   Table1;


-- Isolation Clause
SELECT
   *
FROM
   Table1;
Copy