sql-server - 在分子和/或分母中添加转换为小数?
问题描述
演员阵容如何改变除法结果?还是我应该两个都投?
select 1/(cast(3 as decimal(6,2)))
select (cast(1 as decimal(6,2)))/3
select (cast(1 as decimal(6,2)))/(cast(3 as decimal(6,2)))
select 4/(cast(3 as decimal(6,2)))
select (cast(4 as decimal(6,2)))/3
select (cast(4 as decimal(6,2)))/(cast(3 as decimal(6,2)))
select 220020212/(cast(3 as decimal(6,2)))
退货
0.3333333
0.333333
0.333333333
1.3333333
1.333333
1.333333333
73340070.6666666
解决方案
我喜欢先将列设置为数字,这样我就不必将它们转换为小数。
SELECT
[COL1]/[COL2]
FROM(
SELECT [COL1] = CAST(1 AS NUMERIC), [COL2] = CAST(2 AS NUMERIC)) AS [SUB1]
推荐阅读
- android - 如何修复发布 apk 断言在颤振中失败?
- java - Restfb - 为什么当我获取我的管理组时,应用程序会抛出 OAuthException:(#200)权限错误(代码 200,子代码为空)
- c++ - 我可以使用 try catch 语句来捕获任何错误而不是具体的吗?
- image - 无法在我的 minikube 中加载缓存的图像,我有 windows 10 企业版
- kubernetes - Kubernetes nginx ingress 访问集群外部而不使用服务
- javascript - 使用 for 循环和函数计算表上的行总数
- spring-boot - Springboot 通过过滤器获取动态 JSON 内容
- scala - 通过隐式类重载泛型方法
- acumatica - 为什么 Acumatica ERP PX.DataSource 在设计视图中出现渲染错误?
- reactjs - 用于服务器端渲染的 create-react-app 打字稿