繁体   English   中英

根据条件在SQL Server中乘法列

[英]Multiplying column in SQL Server based on condition

我想根据特定条件在SQL Server中增加一列。

表格如下:

SubjectID    TestDate         TestResult
01           05/01/2010       65
02           06/02/2011       .85
03           07/03/2012       .95
04           08/04/2013       .75

如果TestResult列中的值介于0.65和1之间,我想将它们乘以100; 否则,我想将整数值保持在65到100之间。

我尝试了以下操作,但是对于.65和1之间的值,我只是获得了空值:

SELECT SubjectID, TestDate
         CASE WHEN TestResult  BETWEEN .65 AND 1 THEN TestResult *100
              WHEN TestResult BETWEEN 65 AND 100 THEN TestResult

         END AS TestResult
FROM     Table1

这个更通用的版本行吗?

SELECT SubjectID, TestDate,
       (CASE WHEN TestResult <= 1.0 THEN TestResult * 100
             WHEN TestResult < 100 THEN TestResult
        END) AS new_TestResult
FROM  Table1

我认为使用BETWEEN <><=>= instad可能更简单。 根据其类型,可能还需要将TestResult转换为十进制。

 SELECT SubjectID, TestDate,
     CASE WHEN CONVERT(decimal,TestResult) > .65 AND CONVERT(decimal,TestResult) < 1 THEN CONVERT(decimal,TestResult) * 100
          WHEN CONVERT(decimal,TestResult) >=  1 THEN TestResult
     END AS TestResult
 FROM     Table1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM