我如何在中做到这一点:
SQRT(id) % 1 = 0我不能转换Sqrt()函数的结果,因为这会使上面的逻辑变得无用。对我如何做到这一点有什么想法吗?
谢谢
发布于 2014-01-02 22:15:03
你可以这样做:
floor(sqrt(id)) = sqrt(id)发布于 2014-01-02 22:12:44
要查看sqrt是否完整,请尝试如下:SQRT(id) * SQRT(id) = id。不过,这可能会遇到浮点精度问题。我认为这可以可靠地解决所有数字的问题,直到某个阈值为止:
CONVERT(INT, SQRT(id)) * CONVERT(INT, SQRT(id)) = id
在阈值之后,精度是不够的。你会看到假的底片,但永远不会是假的。
发布于 2014-01-02 22:15:32
您可以将其转换为varchar,然后取小数点之后的substring。更多信息在这里:http://dbaspot.com/sqlserver-programming/411976-how-get-numbers-after-decimal-tsql.html
https://stackoverflow.com/questions/20892856
复制相似问题