我可以在Select情况下使用If else吗?
Update Tab
set Quantity2 = a.Quantity
from
(
select
case when D.Quantity1 > Tab.Quantity2
then D.Quantity1 ------------> (if and else here)
else Tab.Quantity3
end
as Quantity
from Dab D
inner join Tab
on
D.ID = Tab.ID
)a
我想在SELECT CASE WHEN部分中有一个IF ELSE块。可能吗?或者还有其他方法吗?
答案 0 :(得分:3)
您的基本查询应该更像这样:
b
如果需要条件表达式,可以在b
子句中添加PrevNode
。
编辑:
如果您想检查多个条件,只需将它们添加到e
:
public void swap(DoubleLinkedList swapList, Node b, Node f) {
Node a = b.PrevNode;
Node c = b.NextNode;
Node e = f.PrevNode;
Node g = f.NextNode;
if(swapList.First == b) {
swapList.First = f;
} else if(swapList.First == f) {
swapList.First = b;
}
if(a != null) {
a.NextNode = f;
}
f.PrevNode = a;
f.NextNode = c;
if(c != null) {
c.PrevNode = f;
}
if(e != null) {
e.NextNode = b;
}
b.PrevNode = e;
b.NextNode = g;
if(g != null) {
g.PrevNode = b;
}
if(swapList.Last == b) {
swapList.Last = f;
} else if(swapList.Last == f) {
swapList.Last = b;
}
}
答案 1 :(得分:1)
你可以在陈述时嵌套案例。
将内部比较放在外部语句的case when
部分内的新then
语句中。
select
Table2.id,
case when Table2.switch=1
then
(
case when Table1.val1>Table1.val3
then Table1.val1
else Table1.val3
end
)
else
(
case when Table1.val2>Table1.val3
then Table1.val2
else Table1.val3
end
)
end out
from Table2
inner join Table1 on Table2.id=Table1.id