名为Fruit的表具有ID、Fruit name、Cost和New Cost列
|ID | Fruit Name | Cost | New Cost
+---+------------+------+---------
| 1 | Apple | 10 | 9
| 2 | Banana | 20 | 22
| 3 | Orange | 33 | 33我想在一个条件下查询这张表。如果新成本大于成本,那么最终成本应该是0.9*否则最终成本应该是新成本。
输出应该如下所示:
| ID | Fruit Name | Final Cost
+----+------------+-----------
| 1 | Apple | 9
| 2 | Banana | 18
| 3 | Orange | 29.7 不幸的是,我无法在SQL查询中应用If条件。有办法做到这一点吗?
发布于 2020-03-23 05:33:48
您可以使用案例逻辑来得出结果集。
SELECT ID
, FruitName
, CASE WHEN [New Cost] > [Cost] THEN 0.9 * [Cost]
ELSE [New Cost]
END AS [Final Cost]
FROM
Fruit发布于 2020-03-23 05:33:24
请核对一下这个答案
DECLARE @table TABLE
(
ID INT IDENTITY(1,1) PRIMARY KEy,
FruteName NVARCHAR(200),
Cost DECIMAL(10,2),
NewCost DECIMAL(10,2)
)
INSERT INTO @table VALUES('Apple','10',9),('Banana','20',22),('Orange','33',33)
SELECT *, IIF(NewCost>=Cost,(Cost*0.9),NewCost) AS FinalCost
FROM @table

https://stackoverflow.com/questions/60808326
复制相似问题