- Categorias:
VALUES¶
Na instrução SELECT, a subcláusula VALUES da cláusula FROM permite especificar um conjunto de constantes para formar um conjunto finito de linhas.
Para obter mais informações sobre a cláusula VALUES na instrução INSERT, consulte a documentação da instrução INSERT.
Sintaxe¶
Parâmetros¶
exprCada expressão deve ser uma constante, ou uma expressão que possa ser avaliada como uma constante durante a compilação da instrução SQL.
A maioria das expressões aritméticas simples e funções de string podem ser avaliadas no tempo de compilação, mas a maioria das outras expressões não podem.
table_aliasUm alias opcional para dar um nome ao conjunto de linhas, como se o conjunto de linhas fosse uma tabela.
column_aliasOs aliases opcionais podem especificar os nomes das colunas.
Notas de uso¶
Dentro de uma cláusula FROM, uma cláusula VALUES não pode conter a palavra-chave
DEFAULT. Esta limitação contrasta com uma cláusula VALUES em uma instrução INSERT, que oferece suporte ao uso deDEFAULT. Por exemplo,INSERT INTO table VALUES (10, DEFAULT, 'Name') ....Quando uma cláusula VALUES inclui vários valores de diferentes tipos de dados para a mesma coluna, o Snowflake determina um tipo de dados comum que pode abranger todos os valores e converte implicitamente cada valor para esse tipo comum. Essa conversão pode produzir resultados inesperados ou erros se você não estiver ciente dela.
Para evitar coerção inesperada, defina explicitamente cada valor como CAST para o tipo desejado, separe os valores em várias instruções SQL ou certifique-se de que todos os valores em uma coluna compartilhem o mesmo tipo.
Exemplo numérico
Quando os valores numéricos na mesma coluna diferem significativamente em escala ou precisão, o Snowflake pode retornar um erro
out of rangeporque um valor não se encaixa no tipo numérico comum determinado.Especificamente para valores numéricos, você também pode especificar valores como cadeias de caracteres de texto entre aspas e, em seguida, convertê-los em valores numéricos conforme necessário.
Exemplo de carimbo de data/hora
Quando valores de carimbo de data/hora de diferentes tipos aparecem na mesma coluna, o Snowflake converte todos os valores para um tipo de carimbo de data/hora comum. No exemplo a seguir, um valor TIMESTAMP_NTZ é convertido para TIMESTAMP_LTZ:
A cláusula VALUES é limitada a 200.000 linhas.
Exemplos¶
Os exemplos a seguir usam a cláusula VALUES para gerar um conjunto fixo e conhecido de linhas:
É possível referenciar valores pelo nome da coluna (implícito) ou pela posição da coluna. O exemplo a seguir faz referência à segunda coluna por posição de coluna:
O exemplo a seguir distingue várias cláusulas VALUES usando aliases:
Você também pode especificar aliases para os nomes das colunas, conforme mostrado no exemplo a seguir: