首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CASE语句在SQL SERVER或ORACLE中转换度量单位

如何使用CASE语句在SQL SERVER或ORACLE中转换度量单位
EN

Stack Overflow用户
提问于 2010-10-14 00:46:34
回答 2查看 5.5K关注 0票数 1

在SQL SERVER或ORACLE中,有没有一种方法可以使用case语句来转换下面的度量单位?

代码语言:javascript
复制
select UoM, sum(Quantity) as 'QTY'
from mytable
group by UoM


UoM QTY
LBS 2.4
LBS 2
LBS 0.233
LBS 0.97
OZS 1.8
GMS 1236
LBS 120.459
LBS 59.1
LBS 252.82
LBS 175.23
LBS 3.42
LBS 455.4
LBS 57.6
LBS 146.8
LBS 117.78
LBS 197.92
LBS 40.245
GMS 9
LBS 15.78
LBS 12.6
LBS 125.1
LBS 42.3
LBS 1292.3

1磅= 16盎司(盎司)1磅= 453.5924克(GMS)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-14 00:55:25

我想你可以这样做

代码语言:javascript
复制
SELECT sum( (case when UoM = 'LBS' then quantity
                  when UoM = 'OZS' then quantity/16
                  when UoM = 'GMS' then quantity/453.5924
                  else null
               end) ) weight_in_lbs,
       sum( (case when UoM = 'LBS' then quantity*16
                  when UoM = 'OZS' then quantity
                  when UoM = 'GMS' then quantity*16/453.5924
                  else null
               end) ) weight_in_ozs,
       sum( (case when UoM = 'LBS' then quantity*453.5924
                  when UoM = 'OZS' then quantity*453.5924/16
                  when UoM = 'GMS' then quantity
              end) ) weight_in_gms
  FROM myTable
票数 2
EN

Stack Overflow用户

发布于 2010-10-14 00:59:51

你只是想要一个总和吗?或者是每个不同度量的小计?还是用3种不同的度量来表示相同的总数?

代码语言:javascript
复制
SELECT SUM(CASE UoM
       WHEN 'GMS' THEN Quantity
       WHEN 'LBS' THEN Quantity * 453.5924
       WHEN 'GMS' THEN Quantity * 453.5924 / 16
       END) AS TOTALGrams
FROM myTable

应该会给你以克为单位的总数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3925992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档