我使用SQL Server 2005并且需要测试列中元数据中指定为DECIMAL(18.3)的值是否实际包含具有Decimal点右侧值的数据,如果是,则这些值是什么。
我读过一些文章,只讨论如何删除小数位或如何舍入值,而不是如何仅显示存储在小数点右侧的内容。
非常感谢您的帮助。
亲切的问候,
伊格纳西奥。
答案 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)