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 大 展开
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 大 展开
4个回答
展开全部
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 组
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 组
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
2.SELECT 组,sum(数量),‘大’ from tab group by 组 having 状态>2
union
SELECT 组,sum(数量),‘小’ from tab group by 组 having 状态<=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
l(col01, '空') -- SQL SERVER写法
select nvl(col01, '空')-- oracle写法
如果字段是空字符串' '
select replace(col01, ' ', '空')
select nvl(col01, '空')-- oracle写法
如果字段是空字符串' '
select replace(col01, ' ', '空')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询