我想做这样的事
这很管用 Select ID, number, cost from table order by number
数字可以是2-x倍,但成本和
1 A33 66.50
2 A34 73.50
3 A34 73.50
但是我想要
1 A33 66.50
2 A34 73.50
3 A34 0
我想在sql中将其更改为0,我尝试了distinct或if then else。
我想做这样的事
declare @oldcost int;
Select ID, number,
if(cost=@oldcost) then
cost=0;
else
cost=cost;
end if
@oldcost=cost;
from table order by number
如何在sql中实现它?
1条答案
按热度按时间i5desfxk1#
可以使用窗口函数和
case
表达式:请注意,sql通常不考虑排序,因此结果可以按任何顺序返回,甚至可以使用
order by
,具有相同键的行可以是任意顺序(并且在不同的执行上可以是不同的顺序)。因此
order by
包括id
以及number
所以你得到了cost
在“第一”行number.