使用if和or在ms-sql中计算字段

时间:2017-07-06 13:08:08

标签: sql sql-server

IF(
    [dbo.tblx.Category] = 'WS' OR [dbo.tblx.Category] = 'SEM', 
    0, 
    [dbo.tblx.Tonnes] * [dbo.tblx.Grade] / 1000
)

这将返回整个文本,而不是"计算"

有人可以帮助我......我做错了什么?

我试过

CASE WHEN dbo.tblx.Category = 'WS' OR dbo.tblx.Category = 'SEM' THEN 0
     ELSE  dbo.tblx.Tonnes * dbo.tblx.Grade / 1000 
END AS Metal

也许在" CASE WHEN"?之前插入一些东西?它没有运行

2 个答案:

答案 0 :(得分:0)

据我所知,您正在尝试使用其他表中的值创建计算列。 我认为在这种情况下,您必须在计算列的公式中使用用户定义函数。如果您提供更多信息,我可以尝试为您编写一些代码。

相反,如果您只想在查询中添加列,则可以使用:

CASE WHEN dbo.tblx.Category = 'WS' OR dbo.tblPTx.Category = 'SEM' THEN 0
   ELSE  dbo.tblx.Tonnes * dbo.tblx.Grade / 1000 END AS NAME_OF_YOUR_NEW_COLUMN

答案 1 :(得分:-3)

<强>更新

DECLARE @myvar INT;
SET @myvar = CASE WHEN ([dbo.tblx.Category] = WS OR [dbo.tblPTx.Category] = SEM) THEN 0 
                  ELSE  [dbo.tblx.Tonnes] * [dbo.tblx.Grade] / 1000 
             END