我怀疑这是可能的,但是这里有。
我需要制定一个SQL查询(绝对不允许存储过程),它执行以下操作:
Select A.valueFromTable -B.ValueFromTable As result
From table as A inner join table as B
on A.ValueID = B.ValueID
Where ValueID =5
但我需要条件:
if (result <0)
Begin
select A As result ....
end
else
select A-B as result ...
任何帮助都会受到高度赞赏,即使它确认无法完成。
从搜索中我相信我目前使用的SQL Server版本是8.0
答案 0 :(得分:5)
Select
CASE
WHEN A.valueFromTable -B.ValueFromTable < 0 THEN A.valueFromTable
ELSE A.valueFromTable -B.ValueFromTable END As result
From table as A inner join table as B
on A.ValueID = B.ValueID
Where ValueID =5
答案 1 :(得分:1)
使用CASE声明:
SELECT CASE WHEN A-B < 0 THEN A ELSE A-B END AS result
答案 2 :(得分:0)
您正在寻找SQL CASE
语句。
select
case when (A-B < 0)
then A
else A-B
end as result
from
...
答案 3 :(得分:0)
我非常有信心你可以找到一个使用IF条件的解决方案,但如果其他所有方法都失败了,也许可以尝试真正模糊的方法:SELECT(A.valueFromTable - (result&lt; 0)* B.ValueFromTable)
这取决于评估为零的错误条件。