sql >> Base de Datos >  >> RDS >> Sqlserver

Sql Server 2008 - ¿Valores de dinero de redondeo de texto completo?

EDITAR:

La razón por la que está viendo este comportamiento es que los separadores de palabras predeterminados para la búsqueda de texto completo de SQL están definidos por el idioma inglés (configuración regional 1033). En inglés, una coma es un separador de palabras válido, por lo que divide su número en dos números diferentes. Sin embargo, si usa el separador de palabras portugués, FTS mantiene los números juntos de manera bastante inteligente. Intente ejecutar la siguiente consulta en su SQL Server para ver cómo el motor de texto completo analiza la misma entrada de manera diferente según la configuración regional especificada:

--use locale English
select * from sys.dm_fts_parser('"12345,10"',1033,NULL,0)
--use locale Portuguese
select * from sys.dm_fts_parser('"12345,10"',2070,NULL,0)

ACTUALIZACIÓN:Muy bien, logré replicar su escenario y sí, parece ser un comportamiento predeterminado con SQL Server FTS. Sin embargo, parece que solo se redondea al décimo más cercano del número (los 10 centavos más cercanos en su caso) y NO al número entero más cercano.

Así por ejemplo; Se devolvería 12345,88 en búsquedas de tanto 12345,88 como 12345,9 , mientras que 56789,98 aparecería en las búsquedas de 56789,98 y 56790. Sin embargo, un número como 45678,60 permanecerá intacto sin redondeo hacia arriba o hacia abajo, por lo que no es tan malo como cree.

Sin embargo, no estoy seguro de si hay algo que pueda hacer para cambiar este comportamiento. Una búsqueda rápida en Google no arrojó nada.