仅显示十进制数右侧的值

时间:2009-01-23 12:54:14

标签: sql-server sql-server-2005

我使用SQL Server 2005并且需要测试列中元数据中指定为DECIMAL(18.3)的值是否实际包含具有Decimal点右侧值的数据,如果是,则这些值是什么。

我读过一些文章,只讨论如何删除小数位或如何舍入值,而不是如何仅显示存储在小数点右侧的内容。

非常感谢您的帮助。

亲切的问候,

伊格纳西奥。

3 个答案:

答案 0 :(得分:1)

尝试:

SELECT a - FLOOR(a)
FROM ...

答案 1 :(得分:1)

SELECT decimalnumber - FLOOR(decimalnumber) AS decimalpart
FROM mytable
WHERE decimalnumber - FLOOR(decimalnumber) > 0

答案 2 :(得分:0)

这可能并不总是按您期望的方式工作。如果您有负数,则会出现此问题。您可以将FLOOR视为一种舍入类型,它总是向下舍入到下一个整数。楼层(3.14)= 3,楼层(-3.14)= -4。

要获取小数点后的数字值,可以使用ParseName函数,该函数适用于正数和负数。

Select ParseName(-3.9876, 1)
Select ParseName(-3.1234, 1)
Select ParseName(3.9876, 1)
Select ParseName(3.1234, 1)