决策查询 - SQL Server

时间:2015-08-31 17:18:21

标签: sql-server sql-server-2008 tsql

如果事务成功或使用SQL查询失败,我必须做出决定。 我有两个表,其中存储了不同帐户的单位,值和日期。 这是我的条件:

if(unit != 0 and value == 0)
{
 failed
}
if(unit == 0 and value != 0)
{
 failed
}
if(date == NULL)
{
  failed
}

我必须在另一个表中更新此成功和失败。

这就是我尝试使用SQL实现上述逻辑的方法:

 select F.ACCOUNT_ID,F.FUND_ID,
 CASE UNIT
 WHEN 0 THEN 'FAILED',
 CASE VALUE
 WHEN 0 THEN 'FAILED'
 END
 ACCOUNT A right join FUND F
 ON A.ACCOUNT_ID = F.ACCOUNT_ID

希望我已正确解释。如何为此编写T-SQL查询?

1 个答案:

答案 0 :(得分:2)

就像使用您最初的C#代码一样简单:

CASE
  WHEN Unit <> 0 AND value = 0 THEN 'Failed'
  WHEN Unit = 0 AND value <> 0 THEN 'Failed'
  WHEN date IS NULL THEN 'Failed'
  ELSE 'Success'
END

使用large()OR()OR()结构也可以获得相同的结果,但这样更容易维护。