谁能向我解释为什么这个查询返回 0.000?
SELECT CAST(20/1024 AS NUMERIC(10,3))
Run Code Online (Sandbox Code Playgroud)
我只是想简单地将 MB 转换为 GB
谢谢
您首先进行整数除法,然后转换结果。在0整数除法结果转换0至NUMERIC(10,3)
在结果中0.000
。
MS SQL Server 2008 架构设置:
查询 1:
SELECT 20/1024;
Run Code Online (Sandbox Code Playgroud)
结果:
| COLUMN_0 |
------------
| 0 |
Run Code Online (Sandbox Code Playgroud)
要获得非整数除法,您需要至少将所涉及的两个数字中的一个转换为整数以外的数字。在数字文字的情况下,您可以.
在数字后添加一个:
查询 2:
SELECT 20./1024;
Run Code Online (Sandbox Code Playgroud)
结果:
| COLUMN_0 |
------------
| 0.019531 |
Run Code Online (Sandbox Code Playgroud)
对于变量或列,您需要使用CAST
或转换其中之一CONVERT
:
查询 3:
SELECT 20/CAST(1024 AS NUMERIC(10,3));
Run Code Online (Sandbox Code Playgroud)
结果:
| COLUMN_0 |
--------------
| 0.01953125 |
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15772 次 |
最近记录: |