English 中文(简体)
如何使用CASE语句转换SQL SERVER或ORACLE中的MEASURE单位
原标题:How to convert UNIT of MEASURE in SQL SERVER OR ORACLE USING CASE STATEMENT

SQL SERVER或ORACLE中是否有一种方法可以使用事例语句转换下面的度量单位?

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 pound = 16 ounces (OZS) 1 pound = 453.5924 gram (GMS)

最佳回答

我想你可以做这样的事情

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
问题回答

你只是在寻找一首单曲的总计吗?还是每种不同度量的小计?还是用3种不同的衡量标准表示相同的总数?

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

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





相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

Connecting to Oracle 10g with ODBC from Excel VBA

The following code works. the connection opens fine but recordset.recordCount always returns -1 when there is data in the table. ANd If I try to call any methods/properties on recordset it crashes ...

How to make a one to one left outer join?

I was wondering, is there a way to make a kind of one to one left outer join: I need a join that matches say table A with table B, for each record on table A it must search for its pair on table B, ...

Insert if not exists Oracle

I need to be able to run an Oracle query which goes to insert a number of rows, but it also checks to see if a primary key exists and if it does, then it skips that insert. Something like: INSERT ALL ...

How can I store NULLs in NOT NULL field?

I just came across NULL values in NOT-NULL fields in our test database. How could they get there? I know that NOT-NULL constraints can be altered with NOVALIDATE clause, but that would change table s ...

Type reference scope

I m studying databases and am currently working on a object-relational DB project and I ve encountered a small problem with the number of possible constraints in an object table. I m using "Database ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

热门标签