Skip to main content
Preview Snowflake query syntax in Snowflake compatibility mode.

Supported clauses

Set operations

Query parameters

Snowflake bind variables are written as :name (named) or :N (positional). Bind values with the query_parameters request property; see Parametrized queries for passing parameter values from different client SDKs, and the SQL guide for parameter value types. :N uses the same positional convention as $N (so :1 is bound as $1), which keeps positional binding uniform across dialects:
The infix colon (value:field) is the semi-structured accessor, not a parameter. Referencing a parameter that was not set raises an error.

Limitations

  • Query parameters use the :name / :N bind form only. ? positional parameters, $name session variables, and @name stage references are not supported.
  • Fully qualified database.schema.table names are not supported and fail with Database 'mydb' does not exist. Two-part schema.table names work. Most tool-generated Snowflake SQL is fully qualified, so this is usually the first thing a migrated workload hits.
  • Identifiers are returned in lower case. Snowflake folds unquoted identifiers to upper case, so a column selected as n comes back as N there and n here. A client that looks up result columns by name needs to be case-insensitive.
  • $$-quoted string literals are not supported.
  • FETCH FIRST ... ROWS ONLY is not supported; use LIMIT with OFFSET.
  • MINUS is not accepted as a synonym for EXCEPT.