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

SQL Server中乘法的select case语句的结果,sql,sql-server,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转换为数字时出错 有人能帮忙吗?提前感谢。您不能在创建别名的同一语句中引用别名。您必须将子查询粘

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

(SELECT CASE 
    WHEN unit = 'Sqft' THEN squareft
    WHEN unit = 'Lin.Inch' THEN value
 END) AS AREA, 
('AREA'* pieces) AS 'Total Area'
当我使用上述查询时,我得到一个错误:

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


有人能帮忙吗?提前感谢。

您不能在创建别名的同一语句中引用别名。您必须将子查询粘贴到“AREA”的位置,或者按照我的操作,为该计算创建一个CTE,并在主选择中引用CTE

(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'

不能将名为
'AREA'
的字符串常量乘以任何值。你需要有一个数值。我该如何提供?谢谢。当我粘贴子查询时,它可以工作,但我正在寻找一些简短的内容。什么是CTE?CTE是常用的表表达式。您是否见过在查询开始时使用的
?PS-将此标记为答案,以便未来的访问者知道在哪里可以找到。我尝试了相同的方法,得到了结果,但我正在寻找小而方便的方法。从上面这一行进行粘贴和粘贴是非常方便的;)如果不重复case语句,引用计算列(或确定列的case语句)是不容易的。在“选择”行中。你可以用CTE,但老实说…我觉得那更笨重。再次谢谢。我试着把你的两个答案都标对了,但这不允许我这么做。我只能标一个…@jbarker2160比我更能使用魔法溢出点,标记他的