首页 > 解决方案 > 有没有办法在 TSQL 中以数学方式使用条件结果?

问题描述

我想在数学上使用测试结果来决定是否将一个值设置为不同的数字,如果它恰好为零或其他什么。

例如,如果我发出这样的问题: SELECT (1=1)* 100 AS value 我希望 value 得到类似 100 或 -100 的结果(后者是我记得 Commodore Basic 的工作方式)。但相反,我在等号上出现语法错误。有没有办法在 MSSQL 中执行此操作来简化我的查询?

标签: sql-servertsqlalgebra

解决方案


你可以用 case when

SELECT (case when 1=1 then 1 else -1 end)* 100

您也可以使用iif(仅适用于 SQL Server 2012 或更高版本)

SELECT iif(1=1,1 ,-1)* 100

推荐阅读