有谁能告诉我如何使用select case语句的结果进行乘法?
(SELECT CASE
WHEN unit = 'Sqft' THEN squareft
WHEN unit = 'Lin.Inch' THEN value
END) AS AREA,
('AREA'* pieces) AS 'Total Area'
当我使用上述查询时出现错误:
将数据类型varchar转换为数字时出错。
有人可以帮忙吗?提前谢谢。
答案 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'