Oracle 中 查询结果替换的问题

查询出的结果是:nameIDA1B2C3D4我想ID>=3的输出高,ID《=2的输出低A低B低C高D高请问该如何写SQL??环境是ORACLE谢谢热心解答,现在遇到一个新... 查询出的结果是:

name ID
A 1
B 2
C 3
D 4

我想 ID>=3 的 输出 高, ID《=2的 输出低

A 低
B 低
C 高
D 高

请问该如何写SQL?? 环境是ORACLE
谢谢热心解答,现在遇到一个新问题

组 数量 状态
A 1 1
A 1 2
A 1 3
C 1 1
C 2 2
C 3 3
C 4 4
现在需要按状态分组 “状态”大于2 的一组 小于等于2的一组; 组内数量求和

期望结果是
A 2 小
A 1 大
C 3 小
C 7 大
展开
 我来答
flyingFish211
推荐于2018-04-05 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
SELECT name, CASE WHEN ID>=3 THEN '高' ELSE '低' END
from tab

如果要你那个期望结果,必须要分开考虑。
SELECT 组, SUM(数量), MAX(CASE WHEN 状态 <= 2 THEN '小' ELSE NULL END)
FROM TAB WHERE 状态 <= 2 GROUP BY 组
union all
SELECT 组, SUM(数量), MAX(CASE WHEN 状态 > 2 THEN '大' ELSE NULL END)
FROM TAB WHERE 状态 > 2 GROUP BY 组
hit_lubin
2011-03-31 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:1994万
展开全部
select name, decode(sign(id - 3), -1, '低', '高') from table
ORACLE用sign 如果id = 3 ,得到的是0,大于得到1,小于得到-1

把上面得到的结果作为一个新表T,然后以T为基表去得到分组汇总
SELECT T.NAME, T.STATUS, SUM(T.NUMBER)
FROM (select name, decode(sign(status - 2), 1, '大', '小') AS STATUS, NUMBER from table) T
GROUP BY T.NAME, T.STATUS
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
paopaoiff
2011-03-31 · TA获得超过179个赞
知道答主
回答量:174
采纳率:100%
帮助的人:108万
展开全部
1.SELECT name, decode(id>=2,'高' , '低' ) from tab;
2.SELECT 组,sum(数量),‘大’ from tab group by 组 having 状态>2
union
SELECT 组,sum(数量),‘小’ from tab group by 组 having 状态<=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wn30ss
2011-03-31 · TA获得超过387个赞
知道小有建树答主
回答量:634
采纳率:0%
帮助的人:0
展开全部
l(col01, '空') -- SQL SERVER写法
select nvl(col01, '空')-- oracle写法

如果字段是空字符串' '
select replace(col01, ' ', '空')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式