Revisar el código y una declaración de caso tiene expression <= 1.como opuesto a<= 1
No estoy seguro de cuál es el propósito de la 1.. ¿Alguna idea?
sql-server
Pete Forester
fuente
fuente

1.literal como numérico (1,0) en lugar de entero debido al punto. Tal vez eso se especificó para que coincida con el tipo de datos de la expresión (una práctica recomendada). Personalmente, especificaría1.0en ese caso.0después del punto decimal y el hecho de quedecimaltenga una mayor precedencia de tipo de datos queintla constante se emitiría implícitamente de todos modos si fuera necesario me haría pensar que es probable que sea un error de escritura en lugar de deliberado.Respuestas:
1.es unaNUMERIC(oDECIMAL) constante, mientras que1es unaINTEGERconstante. En algunos casos es útil especificar el tipo de datos de una constante explícitamente para evitar una conversión de tipo implícita innecesaria (o indeseable).Considere, por ejemplo
Luego
select 1/f1 from tdevuelve0(INTEGER), mientras queselect 1./f1 from tdevuelve0.5(DECIMAL).Se podría suponer que en el lado izquierdo de la comparación en su ejemplo hay una
DECIMALcolumna, y especificar explícitamente unaDECIMALconstante podría mejorar marginalmente el rendimiento al evitar una conversión de tipo implícita.fuente