【问题标题】:Only display the values to the right of a Decimal Number仅显示十进制数右侧的值
【发布时间】:2009-01-24 03:43:19
【问题描述】:

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

我读过几篇文章,它们只讨论如何去掉小数位或如何舍入值,而不是如何只显示小数点右侧存储的内容。

非常感谢您的帮助。

亲切的问候,

伊格纳西奥。

【问题讨论】:

    标签: sql-server sql-server-2005


    【解决方案1】:

    试试:

    SELECT a - FLOOR(a)
    FROM ...
    

    【讨论】:

      【解决方案2】:
      SELECT decimalnumber - FLOOR(decimalnumber) AS decimalpart
      FROM mytable
      WHERE decimalnumber - FLOOR(decimalnumber) > 0
      

      【讨论】:

        【解决方案3】:

        这可能并不总是按您期望的方式工作。当您有负数时会出现问题。您可以将 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)
        

        【讨论】:

        • 嗨,伙计们/女孩们(如果回答的人之一是),感谢您的回答,他们为我指明了正确的方向。请注意,解决负数问题:只需将 ABS() 函数添加到混合中,瞧,问题就解决了。祝你有个美好的一周!伊格纳西奥。
        猜你喜欢
        • 2021-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-21
        • 2018-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多