SnowConvert AI - IBM DB2 - SELECT STATEMENT

Descrição

Uma subdivisão da instrução SELECT feita no IBM DB2.

Clique aqui para acessar a página de documentação do IBM DB2 para esta sintaxe.

Sintaxe da gramática

imagem

Cláusula From

Todas as informações sobre esta parte da sintaxe estão especificadas na página da cláusula.

Cláusula Where

A cláusula WHERE especifica uma tabela de resultados intermediária que consiste nas linhas de R para as quais a condição de pesquisa é verdadeira. R é o resultado da cláusula FROM da subseleção.

Clique aqui para acessar a página de documentação do IBM DB2 para esta sintaxe.

Sintaxe da gramática

imagem

SuccessPlaceholder

Toda a sintaxe especificada nesta cláusula “where” do DB2 é compatível com ANSI, equivalente ao Snowflake, e é, portanto, traduzida pelo SnowConvert AI.

Agrupar por cláusula

A cláusula GROUP BY especifica uma tabela de resultados intermediária que consiste em um agrupamento das linhas do R. O R é o resultado da cláusula anterior da subseleção.

Clique aqui para acessar a página de documentação do IBM DB2 para esta sintaxe.

Sintaxe da gramática

imagem

Nenhuma referência de coluna explícita

As seguintes expressões, que não contêm uma referência de coluna explícita, podem ser usadas em uma expressão de agrupamento para identificar uma coluna do R:

  • Designador de tabela ROW CHANGE TIMESTAMP FOR

  • Designador de tabela ROW CHANGE TOKEN FOR

  • Função escalar RID_BIT ou RID

Expressões ROW CHANGE e funções escalares RID/RID_BIT não são suportadas no Snowflake.

Amostra de padrões da origem

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

Cláusula de busca

Description

Define um número máximo de linhas a serem recuperadas.

Clique aqui para acessar a página de documentação do IBM DB2 para esta sintaxe.

Grammar Syntax

imagem

Sample Source Patterns

Busca sem contagem de linhas

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

Cláusula de deslocamento

Description

Define o número de linhas a serem puladas.

Clique aqui para acessar a página de documentação do IBM DB2 para esta sintaxe.

Grammar Syntax

imagem

imagem

Sample Source Patterns

Deslocamento de contagem de linhas

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

Cláusula de ordem por

Description

A cláusula ORDER BY especifica uma ordenação das linhas da tabela de resultados.

Clique aqui para acessar a página de documentação do IBM DB2 para esta sintaxe.

Grammar Syntax

imagem

imagem

Sample Source Patterns

Os únicos caminhos de ORDER BY em Db2 que não são suportados no Snowflake são aqueles quando ele é usado com ORDER OF e INPUT SEQUENCE; portanto, se estiverem presentes, a cláusula será marcada com EWI.

Exemplos de IBM DB2 não suportados

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

Cláusula de valores

Description

Gera uma tabela de resultados especificando os valores reais, usando expressões ou expressões de linha, para cada coluna de uma linha na tabela de resultados.

Nota

A cláusula VALUES não é compatível com o Snowflake. Por isso, é traduzida como uma instrução SELECT, conforme mostrado nos exemplos abaixo.

Sintaxe da gramática

imagem

Amostra de padrões da origem

A cláusula “Values” não é compatível com o Snowflake. Por isso, a cláusula “Values” é traduzida como uma consulta “select”.

IBM DB2

VALUES 1, 2, 3
Copy

1

2

3

Snowflake
SELECT 1, 2, 3
Copy

1

2

3

Para os valores com várias linhas, é usada uma união:

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

Cláusulas removidas

Descrição

As seguintes cláusulas são removidas, porque não são aplicáveis no Snowflake:

  • FOR READ ONLY

  • Cláusula “Update”

  • Cláusula “Optimize for”

  • Cláusula “Concurrent access resolution”

  • Cláusula “Isolation”

Amostra de padrões da origem

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