L'examen du code et d'une déclaration de cas a, expression <= 1.
par opposition à<= 1
Je ne sais pas quel est le but de la 1.
. Des pensées?
sql-server
Pete Forester
la source
la source
1.
littéral comme numérique (1,0) au lieu d'entier en raison de la période. Peut-être que cela a été spécifié afin de faire correspondre le type de données de l'expression (une meilleure pratique). Personnellement, je préciserais1.0
dans ce cas.0
après la virgule décimale et le fait que ladecimal
priorité du type de données soit plus élevée queint
la constante serait implicitement castée de toute façon si nécessaire me ferait penser qu'il s'agit probablement d'une erreur de frappe plutôt que délibérée.Réponses:
1.
est une constanteNUMERIC
(ouDECIMAL
), tandis que1
est uneINTEGER
constante. Dans certains cas, il est utile de spécifier explicitement le type de données d'une constante pour éviter une conversion de type implicite inutile (ou indésirable).Considérez, par exemple
select 1/f1 from t
Retourne ensuite0
(INTEGER
), tandis queselect 1./f1 from t
retourne0.5
(DECIMAL
).On pourrait supposer que sur le côté gauche de la comparaison dans votre exemple, il y a une
DECIMAL
colonne, et la spécification explicite d'uneDECIMAL
constante pourrait améliorer légèrement les performances en évitant une conversion de type implicite.la source