Select

Translation reference to convert SQL Server Select statement to Snowflake

Some parts in the output code are omitted for clarity reasons.

Description

Allows the selection of one or more rows or columns of one or more tables in SQL Server.

For more information regarding SQL Server Select, check here.

<SELECT statement> ::=    
    [ WITH { [ XMLNAMESPACES ,] [ <common_table_expression> [,...n] ] } ]  
    <query_expression>   
    [ ORDER BY <order_by_expression> ] 
    [ <FOR Clause>]   
    [ OPTION ( <query_hint> [ ,...n ] ) ]   
<query_expression> ::=   
    { <query_specification> | ( <query_expression> ) }   
    [  { UNION [ ALL ] | EXCEPT | INTERSECT }  
        <query_specification> | ( <query_expression> ) [...n ] ]   
<query_specification> ::=   
SELECT [ ALL | DISTINCT ]   
    [TOP ( expression ) [PERCENT] [ WITH TIES ] ]   
    < select_list >   
    [ INTO new_table ]   
    [ FROM { <table_source> } [ ,...n ] ]   
    [ WHERE <search_condition> ]   
    [ <GROUP BY> ]   
    [ HAVING < search_condition > ]   

Sample Source Patterns

SELECT WITH COLUMN ALIASES

The following example demonstrates how to use column aliases in Snowflake. The first two columns, from the SQL Server code, are expected to be transformed from an assignment form into a normalized form using the AS keyword. The third and fourth columns are using valid Snowflake formats.

SQL Server

Snowflake

SELECT TOP

The basic case of SQL Server Select Top is supported by Snowflake. However, three more cases exist that are not supported, you can check them in the Known Issues section.

SQL Server

Snowflake

SELECT INTO

The following example shows the SELECT INTO is transformed into a CREATE TABLE AS, this is because in Snowflake there is no equivalent for SELECT INTO and to create a table based on a query has to be with the CREATE TABLE AS.

SQL Server

Snowflake

Another case is when including set operators such as EXCEPT and INTERSECT. The transformation is basically the same as the previous one.

SQL Server

Snowflake

Known Issues

SELECT TOP Aditional Arguments

Since PERCENT and WITH TIES keywords affect the result, and they are not supported by Snowflake, they will be commented out and added as an error.

SQL Server

Snowflake

SELECT FOR

Since the FOR clause is not supported in Snowflake, it is commented out and added as an error during the transformation.

SQL Server

Snowflake

SELECT OPTION

The OPTION clause is not supported by Snowflake. It will be commented out and added as a warning during the transformation.

SQL Server

Snowflake

SELECT WITH

The WITH clause is not supported by Snowflake. It will be commented out and added as a warning during the transformation.

SQL Server

Snowflake

  1. SSC-EWI-0040: Statement Not Supported.

  2. SSC-EWI-TS0044: FOR XML clause is not supported in Snowflake.

Last updated