我对SQL还是很陌生,不知道如何组合几个if .. then
语句。
正确的语法是什么?
我正在使用SQL Server Management Studio 2017。
我试图结合if... else if..statements
并尝试使用case语句,但是我总是迷失在语句的嵌套中。
在执行某种计算之前,我必须满足一些条件。
应该是这样的:
If CalculationMethod = x
and if (Price * coefficient) < Amount
then CalculatedAmount = Amount
else CalculatedAmount = (Price * coefficient)
Amount
拥有if语句的地方:
Amount =
If Category = a and DistanceFrom <= Distance >= DistanceUntill then take amount from that particular cell
If Category = b and DistanceFrom <= Distance >= DistanceUntill then take amount from that particular cell
If Category = c and DistanceFrom <= Distance >= DistanceUntill then take amount from that particular cell
在这种情况下,Amount
是表中具有列DistanceFrom
,DistanceUntill
,a
,b
和c
的单元格。
CalculationMethod
和Coefficient
是另一个表中的列。
Price
是第三张表中的一列。
最后,我希望基于CalculatedAmount
,Amount
和Price
的{{1}}。
这有意义吗?有谁知道如何解决这个问题?
答案 0 :(得分:1)
如果您有IF ... THEN ... ELSE类型的方案,我认为正确的方向是使用CASE语句,例如:
SELECT CASE WHEN CalculationMethod = x AND ((Price * coefficient) < Amount) THEN Amount
ELSE (Price * coefficient) END CalculatedAmount
您可以在这里阅读有关内容:https://ionicframework.com/docs/native/camera/#CameraOptions
在只有一个决策分支的情况下,IIF子句效果很好,但是如果您要从CASE语句中选择多个内容,则该方法是可行的。
答案 1 :(得分:0)
SELECT IIF(CalculationMethod = x and Price * coefficient < Amount, Amount, Price * coefficient) as CalculatedAmount
FROM aTable