2012-02-20 3 views
1

Я работаю с MSSQL Server 2008,как получить десятичное значение десятичного типа

позволяет сказать, что у меня есть таблица счета содержит имя столбца NetAmount его типа десятичного (20,4)

и его данные является

Netamount, InvoiceID 
--------------------- 
12.1234,  1 
20.0120,  2 
98.2300,  3 

я хочу извлечь через запрос, чтобы получить только счета-фактуры, имеющий значение, не равное нулю в п десятичного знака, в моем случае этот запрос должен получить только первый счет с ID = 1 и суммы = 12.1234 поскольку его четвертое десятичное число равно 4 не нулю

Благодаря

ответ

4

Один из методов:

WHERE 
    (NetAmount * 10000) % 10 <> 0 

Другой:

WHERE 
    FLOOR(NetAmount * 1000) <> NetAmount * 1000 

И

WHERE 
    ROUND(NetAmount, 3) <> NetAmount 
+0

+1 Я был на полпути через кучу ерунды с 'LOCATE() CAST() SUBSTRING() ', но это имеет гораздо больший смысл. –

Смежные вопросы