Precedência de tipo de dados (Transact-SQL)

APLICA-SE A: SQL Server Banco de Dados SQL do Azure Azure Synapse Analytics Parallel Data Warehouse

Quando um operador combinar duas expressões com tipos de dados diferentes, o tipo de dados com a precedência mais baixa será convertido no tipo de dados de maior precedência. Se a conversão não for uma conversão implícita com suporte, será retornado um erro. Para um operador combinando expressões de operando que tem o mesmo tipo de dados, o resultado da operação terá esse tipo de dados.

O SQL Server usa a seguinte ordem de precedência para tipos de dados:

  1. UDT (tipos de dados definidos pelo usuário) (maior)
  2. sql_variant
  3. xml
  4. datetimeoffset
  5. datetime2
  6. datetime
  7. smalldatetime
  8. date
  9. time
  10. float
  11. real
  12. decimal
  13. money
  14. smallmoney
  15. bigint
  16. int
  17. smallint
  18. tinyint
  19. bit
  20. ntext
  21. text
  22. imagem
  23. timestamp
  24. uniqueidentifier
  25. nvarchar [incluindo nvarchar(max)]
  26. nchar
  27. varchar [incluindo varchar(max)]
  28. char
  29. varbinary [incluindo varbinary(max)]
  30. binary (mais baixo)

Confira também

Tipos de dados (Transact-SQL)
Expressões (Transact-SQL)
CAST e CONVERT (Transact-SQL)