SnowConvert AI - IBM DB2 - SELECT STATEMENT

説明

IBM DB2 で行われた SELECT ステートメントを細分化したもの。

こちら をクリックすると、この構文に関する IBM DB2 ドキュメントページに移動します。

文法構文

image

From句

構文のこの部分に関するすべての情報は、 From句のページ で指定されています。

Where句

WHERE 句は、検索条件が真であるRの行からなる中間結果テーブルを指定します。Rはsubselectの FROM 句の結果です。

こちら をクリックすると、この構文に関する IBM DB2 ドキュメントページに移動します。

文法構文

image

SuccessPlaceholder

この DB2 のwhere句で指定されている文法はすべて、 ANSI に準拠し、Snowflakeと同等であるため、 SnowConvert AI によってそのまま翻訳されます。

Group By句

GROUP BY 句は、Rの行のグループ化で構成される中間結果テーブルを指定します。Rは、subselectの前の句の結果です。

こちら をクリックすると、この構文に関する IBM DB2 ドキュメントページに移動します。

文法構文

image

明示的な列参照なし

明示的な列参照を含まない以下の式は、Rの列を識別するためにグループ化式で使用できます。

  • ROW CHANGE TIMESTAMP FOR table-designator

  • ROW CHANGE TOKEN FOR table-designator

  • RID_BIT または RID スカラー関数

ROW CHANGE 式と RID/RID_BIT スカラー関数はSnowflakeではサポートされていません。

サンプルソースパターン

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句

Description

取得する行の最大数を設定します。

こちら をクリックすると、この構文に関する IBM DB2 ドキュメントページに移動します。

Grammar Syntax

image

Sample Source Patterns

行カウントなしの取得

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句

Description

スキップする行数を設定します。

こちら をクリックすると、この構文に関する IBM DB2 ドキュメントページに移動します。

Grammar Syntax

image

image

Sample Source Patterns

オフセット行カウント

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

Limit X、Y

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

Order by句

Description

ORDER BY 句は、結果テーブルの行の順序を指定します。

こちら をクリックすると、この構文に関する IBM DB2 ドキュメントページに移動します。

Grammar Syntax

image

image

Sample Source Patterns

Db2の ORDER BY のパスでSnowflakeでサポートされていないのは、 ORDER OF と INPUT SEQUENCE とともに使用されるパスだけです。したがって、これらが存在する場合、句には EWI が付きます。

IBM DB2 サポートされていない例

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句

Description

結果テーブルの行の各列に対して、式または行式を使用して実際の値を指定して結果テーブルを導出します。hin

注釈

VALUES 句はSnowflakeではサポートされていません。このため、以下の例のように、 SELECT ステートメントに変換されます。

文法構文

image

サンプルソースパターン

Values句はSnowflakeではサポートされていません。このため、values句はselectクエリに変換されます。

IBM に DB2

VALUES 1, 2, 3
Copy

1

2

3

Snowflake
SELECT 1, 2, 3
Copy

1

2

3

複数の行を持つ値については、Unionが使用されます。

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

削除された句

説明

以下の句は、Snowflakeでは適用されないため、削除されます。

  • FOR READ ONLY

  • Update句

  • Optimize for句

  • Concurrent access resolution句

  • Isolation句

サンプルソースパターン

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