SnowConvert AI – IBM DB2 – SELECT STATEMENT

Beschreibung

Eine Unterteilung der SELECT-Anweisung in IBM DB2.

Klicken Sie hier, um zur IBM DB2-Dokumentationsseite für diese Syntax zu navigieren.

Grammatikalische Syntax

Abbildung

FROM-Klausel

Alle Informationen zu diesem Teil der Syntax werden auf der Seite zur FROM-Klausel angegeben.

WHERE-Klausel

Das WHERE-Klausel gibt eine Zwischenergebnistabelle an, die aus den Zeilen des Typs R besteht, für die die Suchbedingung erfüllt ist. R ist das Ergebnis der FROM-Klausel des Subselects.

Klicken Sie hier, um zur IBM DB2-Dokumentationsseite für diese Syntax zu navigieren.

Grammatikalische Syntax

Abbildung

SuccessPlaceholder

Die gesamte grammatikalische Syntax, die in dieser WHERE-Klausel von DB2 angegeben ist, ist ANSI-konform, entspricht Snowflake und wird daher so übersetzt, wie sie auch von SnowConvert AI übersetzt wird.

GROUP BY-Klausel

Die GROUP BY-Klausel gibt eine Zwischenergebnistabelle an, die aus einer Gruppierung der Zeilen des Typs R besteht. R ist das Ergebnis der vorherigen Klausel des Subselects.

Klicken Sie hier, um zur IBM DB2-Dokumentationsseite für diese Syntax zu navigieren.

Grammatikalische Syntax

Abbildung

Keine explizite Spaltenreferenz

Die folgenden Ausdrücke, die keinen expliziten Spaltenreferenz enthalten, können in einem Gruppierungsausdruck verwendet werden, um eine Spalte des Typs R zu identifizieren:

  • ROW CHANGE TIMESTAMP FOR table-designator

  • ROW CHANGE TOKEN FOR table-designator

  • RID_BIT- oder RID-Sklarfunktion

ROW CHANGE-Ausdrücke und RID/RID_BIT-Skalarfunktionen werden von Snowflake nicht unterstützt.

Beispielhafte Quellcode-Muster

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

FETCH-Klausel

Description

Legt eine maximale Anzahl der abzurufenden Zeilen fest.

Klicken Sie hier, um zur IBM DB2-Dokumentationsseite für diese Syntax zu navigieren.

Grammar Syntax

Abbildung

Sample Source Patterns

FETCH ohne Zeilenanzahl

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

OFFSET-Klausel

Description

Legt die Anzahl der zu überspringenden Zeilen fest.

Klicken Sie hier, um zur IBM DB2-Dokumentationsseite für diese Syntax zu navigieren.

Grammar Syntax

Abbildung

Abbildung

Sample Source Patterns

offset-row-count

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

X,Y begrenzen

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

ORDER BY-Klausel

Description

Die ORDER BY-Klausel gibt eine Reihenfolge der Zeilen einer Ergebnistabelle an.

Klicken Sie hier, um zur IBM DB2-Dokumentationsseite für diese Syntax zu navigieren.

Grammar Syntax

Abbildung

Abbildung

Sample Source Patterns

Die einzigen Pfade von ORDER BY in Db2, die in Snowflake nicht unterstützt werden, sind solche, wenn die Klausel mit ORDER OF und INPUT SEQUENCE verwendet wird; wenn diese vorhanden sind, wird die Klausel mit einem EWI gekennzeichnet.

IBM DB2 – Nicht unterstützt – Beispiele

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

VALUES-Klausel

Description

Leitet eine Ergebnistabelle ab, indem für jede Spalte einer Zeile in der Ergebnistabelle die tatsächlichen Werte mithilfe von Ausdrücken oder Zeilenausdrücken angegeben werden. hin

Bemerkung

Die VALUES-Klausel wird in Snowflake nicht unterstützt. Aus diesem Grund wird es in eine SELECT-Anweisung übersetzt, wie in den folgenden Beispielen gezeigt.

Grammatikalische Syntax

Abbildung

Beispielhafte Quellcode-Muster

Die VALUES-Klausel wird in Snowflake nicht unterstützt. Aus diesem Grund wird die VALUES-Klausel in eine SELECT-Abfrage übersetzt.

IBM-DB2

VALUES 1, 2, 3
Copy

1

2

3

Snowflake
SELECT 1, 2, 3
Copy

1

2

3

Für Werte mit mehreren Zeilen wird eine Vereinigung verwendet:

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

Entfernte Klauseln

Beschreibung

Die folgenden Klauseln werden entfernt, da sie in Snowflake nicht anwendbar sind:

  • FOR READ ONLY

  • UPDATE-Klausel

  • OPTIMIZE FOR-Klausel

  • concurrent-access-resolution-Klausel

  • ISOLATION-KLAUSEL

Beispielhafte Quellcode-Muster

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