Ray*_*and 3 sql-server select sql-server-2014
我有一个数据库,其中包含一个值、一个以字节为单位的共享大小和一个共享名。这非常准确,但对我的最终用户没有用。因此我将值转换为 GB。通过使用简单的划分效果很好。
让我们假设我的数据库由两列组成。共享名和共享大小。
Sharename | Sharesize
Run Code Online (Sandbox Code Playgroud)
Share 1 |71685107549
Now I run this:
SELECT TOP (1000)
[Sharename]
,[ShareSize]
,(ShareSize / 1e+9) SharesizeGB
FROM [mydb].[dbo].[myshares]
Run Code Online (Sandbox Code Playgroud)
输出是:
ShareSize SharesizeGB
71685107549 71,685107549
Run Code Online (Sandbox Code Playgroud)
现在我需要用“点”替换“,”并将结果四舍五入到点后只有两位数字。
是否可以仅使用 select 语句?
对于我的示例,不需要除以 1024。
Dan*_*man 11
查询返回浮点数据类型,这是一种没有逗号或点小数分隔符的二进制结构。渲染应用程序将值转换为字符串格式以用于显示目的,如果编程为这样做,它可以遵守客户端的区域设置。
尽管您可以更改 T-SQL 以返回如下例所示的格式化字符串,但请注意客户端排序将使用字符串而不是数字规则。请注意,此示例明确指定了文化en_US
,它使用点小数分隔符来覆盖当前会话语言设置。还添加ORDER BY
了该TOP
子句的确定性结果。
SELECT TOP (1000)
[Sharename]
,[ShareSize]
,FORMAT(ShareSize / 1e+9, '#,##0.000000000000', 'en-US') SharesizeGB
FROM [mydb].[dbo].[myshares]
ORDER BY (ShareSize / 1e+9) DESC;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
245 次 |
最近记录: |