2009-08-21 7 views
2

Je convertis une requête Access Jet-SQL en T-SQL et je suis tombé sur la fonction Int(). Maintenant, je voudrais le convertir en T-SQL, ce qui est ce que j'ai jusqu'à présent:ACCESS Jet SQL INT() Fonction -> Fonction SQL Server

--Works for Positive 
Select CONVERT(INT, 1.2) 
--Answer = 1 

--Not the same as Access 
SELECT CONVERT(INT, -1.2) 
--Answer = -1 

maintenant, selon this, j'ai besoin de revenir -2, -1 pas. Est-ce que quelqu'un a un code T-SQL plus propre que:

DECLARE @test FLOAT 
SET @test = -1.2 

SELECT CASE WHEN @test < 0 THEN CONVERT(INT, @test) - 1 ELSE CONVERT(INT, @test) END 

Quelqu'un peut-il venir avec un code plus propre que cela (T-SQL uniquement)? Aucune UDF comme ceci est une requête ad hoc. Merci!

Répondre

3

SELECT FLOOR (@test)

1

Oh ouais ...

select convert(int, floor(@test)) 

jamais l'esprit ...