SQL Server中用于乘法的select case语句的结果

时间:2014-09-30 16:32:10

标签: sql sql-server

有谁能告诉我如何使用select case语句的结果进行乘法?

(SELECT CASE 
    WHEN unit = 'Sqft' THEN squareft
    WHEN unit = 'Lin.Inch' THEN value
 END) AS AREA, 
('AREA'* pieces) AS 'Total Area'

当我使用上述查询时出现错误:

  

将数据类型varchar转换为数字时出错。

有人可以帮忙吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您无法在创建别名的同一语句中引用别名。您必须将子查询粘贴到“AREA'或者做我要做的事情并为该计算创建一个CTE并在主要选择中引用CTE。

答案 1 :(得分:1)

(SELECT CASE 
   WHEN unit = 'Sqft' THEN squareft
   WHEN unit = 'Lin.Inch' THEN value
 END) AS AREA, 
('AREA'* pieces) AS 'Total Area'
像这样的'Area'是一个字符串,而不是对列区域的引用(错误是单词'area'不能乘以数字)。在乘法

中使用case语句
(SELECT CASE 
    WHEN unit = 'Sqft' THEN squareft
    WHEN unit = 'Lin.Inch' THEN value
 END) AS AREA, 
(CASE 
   WHEN unit = 'Sqft' THEN squareft
   WHEN unit = 'Lin.Inch' THEN value
 END* pieces) AS 'Total Area'