Precedência de tipo de dados (Transact-SQL)
Quando um operador combinar duas expressões com tipos de dados diferentes, as regras de precedência do tipo de dados especificam que o mesmo, com a precedência mais baixa, será convertido para o tipo de dado de maior precedência. Se a conversão não for uma conversão implícita com suporte, um erro será retornado. Quando ambas as expressões de operando tiverem o mesmo tipo de dados, o resultado da operação terá aquele tipo de dados.
O SQL Server usa a seguinte ordem de precedência para tipos de dados:
UDT (tipos de dados definidos pelo usuário) (maior)
sql_variant
xml
datetimeoffset
datetime2
datetime
smalldatetime
date
time
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar (inclusive nvarchar(max) )
nchar
varchar (inclusive varchar(max) )
char
varbinary (inclusive varbinary(max) )
binary (mais baixo)