<strong>1.表中有ABC三列,用SQL语句实现,当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
select (case when a>b then a else b end),(case when b>c then b else c end) from t
2.有一张表T_Scores,记录比赛成绩
Date Name Score
2008-8-8 拜仁 胜
2008-8-9 奇才 胜
2008-8-9 湖人 胜
2008-8-10 拜仁 负
2008-8-8 拜仁 负
2008-8-12 奇才 胜
要求输出下面的格式:
Name 胜 负
拜仁 1 2
湖人 1 0
奇才 2 0
数据和参考答案见备注
注意:在中文字符串前加N, 比如N'胜'
select Name,
{
case Score
when N'胜' then 1
else 0
end
} as 胜,
{
case Score
when N'负' then 1
else 0
end
} as 负
from T_Scores
输出结果:
Name 胜 负
拜仁 1 0
奇才 1 0
湖人 1 0
拜仁 0 1
拜仁 0 1
奇才 1 0
select Name,
Sum{
case Score
when N'胜' then 1
else 0
end
} as 胜,
Sum{
case Score
when N'负' then 1
else 0
end
} as 负
from T_Scores
group by Name
输出结果:
Name 胜 负
拜仁 1 2
湖人 1 0
奇才 2 0
3.
单号 金额
Rk1 10
Rk2 20
Rk3 -30
Rk4 -10
将上面的表输出为如下的格式:
单号 收入 支出
Rk1 10 0
Rk2 20 0
Rk3 0 30
Rk4 0 10
select Name,
{
case Score
when N'胜' then 1
else 0
end
} as 胜,
{
case Score
when N'负' then 1
else 0
end
} as 负
from T_Scores
SELECT FNumber,
{
CASE WHEN FAmount>0 THEN FAmount
ELSE 0
END
}AS 收入,
{
CASE WHEN FAmount<0 THEN ABS(FAmount)
ELSE 0
END)
}AS 支出
FROM SALARY_TABLE;</strong>
Oracle Case end用法
最新推荐文章于 2023-03-21 17:15:54 发布