[英]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.