sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2008 - FullText avrundar pengar värden?

EDIT:

Anledningen till att du ser detta beteende är att standardordbrytarna för SQL-fulltextsökning är definierade av det engelska språket (locale 1033). På engelska är ett kommatecken en giltig ordbrytare, och delar därmed upp ditt nummer i två olika nummer. Men om du använder den portugisiska ordbrytaren, håller FTS ganska skickligt ihop siffrorna. Testa att köra följande fråga på din SQL Server för att se hur fulltextmotorn analyserar samma indata på olika sätt beroende på den angivna språkversionen:

--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)

UPPDATERING:Okej, jag har lyckats replikera ditt scenario och ja det verkar vara standardbeteende med SQL Server FTS. Det verkar dock bara avrunda uppåt till närmaste 1/10 av talet (närmaste 10 centavos i ditt fall), och INTE till närmaste heltal.

Så till exempel; 12345,88 skulle returneras vid sökningar efter både 12345,88 och 12345,9 , medan 56789,98 skulle visas i sökningar efter 56789,98 såväl som 56790. Ett tal som 45678,60 kommer dock att förbli intakt utan avrundning uppåt eller nedåt, så det är inte så illa som du tror.

Inte säker på om det finns något du kan göra för att ändra detta beteende dock. En snabb sökning på Google gav ingenting.



  1. Är det möjligt att använda GROUP BY med bindningsvariabler?

  2. SQL Server String Sammansättning med Null

  3. konfigurera django med Oracle 11g-databasproblem

  4. Hur vi kan använda mysql_affected_rows() i lagrad procedur