我如何在T-Sql中执行此操作:
SQRT(id) % 1 = 0
我无法转换Sqrt()函数的结果,因为这会使上面的逻辑变得无用。 关于如何实现这一目标的任何想法?
由于
答案 0 :(得分:1)
要查看sqrt是否为完整,请尝试以下操作:SQRT(id) * SQRT(id) = id
。但这可能会遇到浮点精度问题。我认为这可以确保所有数字达到一定的阈值:
CONVERT(INT, SQRT(id)) * CONVERT(INT, SQRT(id)) = id
在阈值之后,精度将不够。你会看到假阴性,但从不会出现误报。
答案 1 :(得分:1)
你可以这样做:
floor(sqrt(id)) = sqrt(id)
答案 2 :(得分:0)
您可以将其转换为varchar
,然后取小数点后的substring
。更多信息:http://dbaspot.com/sqlserver-programming/411976-how-get-numbers-after-decimal-tsql.html