A revisão do código e uma declaração de caso tem expression <= 1.
como oposição a<= 1
Não sei ao certo qual é o objetivo 1.
. Alguma ideia?
sql-server
Pete Forester
fonte
fonte
1.
literal como numérico (1,0) em vez de inteiro devido ao período. Talvez isso tenha sido especificado para corresponder ao tipo de dados da expressão (uma prática recomendada). Pessoalmente, eu especificaria1.0
nesse caso.0
após o ponto decimal e o fato dedecimal
ter uma precedência de tipo de dados mais alta do queint
a constante seria implicitamente convertida de qualquer maneira, se necessário, me faria pensar que provavelmente é um erro de digitação e não deliberado.Respostas:
1.
é umaNUMERIC
(ouDECIMAL
) constante, enquanto1
é umaINTEGER
constante. Em alguns casos, é útil especificar explicitamente o tipo de dados de uma constante para evitar uma conversão de tipo implícita desnecessária (ou indesejável).Considere, por exemplo
Então
select 1/f1 from t
retorna0
(INTEGER
), enquantoselect 1./f1 from t
retorna0.5
(DECIMAL
).Pode-se supor que no lado esquerdo da comparação no seu exemplo haja uma
DECIMAL
coluna, e especificar explicitamente umaDECIMAL
constante pode melhorar marginalmente o desempenho, evitando uma conversão implícita de tipo.fonte