有一个表
Student
------------------
name sex age想通过两个不同的条件查询符合条件的学生人数
比如年龄大与20岁的人数
和女生人数
然后将这两个人数合并起来,拼成一个字符串如果写两个sQl是很简单的,现在是要通过一条SQl实现
显示结果是: 女生-n人,超龄m人,这个样式
(样式不重要,关键是两条SQL语句怎么拼成一条)谢谢
Student
------------------
name sex age想通过两个不同的条件查询符合条件的学生人数
比如年龄大与20岁的人数
和女生人数
然后将这两个人数合并起来,拼成一个字符串如果写两个sQl是很简单的,现在是要通过一条SQl实现
显示结果是: 女生-n人,超龄m人,这个样式
(样式不重要,关键是两条SQL语句怎么拼成一条)谢谢
解决方案 »
- 求一个查sql运行次数和运行时间的语句
- 求解什么时候执行计划会使用笛卡尔积
- ORALCE 10G 不能DBLINK到11G的服务器
- pl\sql developer在linux下能用吗?若能,该怎么安装呢?初学,请指点
- select KMBH + '-' + KMMC from XT_KMB语句问题
- 如何重建分区索引?
- 求救!!关与我的饭碗问题
- 写入一块数据时,出现ORA-03124:双工内部错误,请问怎么解决?
- 求助!!!!语句优化
- C#连接oracle,ORA-12154: TNS: 无法解析指定的连接标识符
- 这个批量更新语句正确吗?主要是逻辑,更新是成功的。
- [200分]程序块调用存储过程,展现游标的问题!
SELECT sum(DECODE(SEX,'女',1,0)) 女生人数,sum(case when age>20 then 1 else 0 end) 超龄人数 FROM STUDENT
还有别的方法么?
T
------------
id age result
1 20
2 21
3 22
....
这里的age就是限定条件,比如21,就是查询21岁的女生人数,22就查询22岁的女生人数
人数放在result里我这样写
update T t
set result=
(
select a||b from (
(select count(*) as a from student where sex='女' and t.age = student.age),
(select count(*) as b from student where sex='女')
)
)但是提示t.age无效
请帮我看看,谢谢了
如:
Update T m set m.result=
(select a from
(select student.age as b,count(*) as a from student,T m where student.sex='女' and m.age=student.age
group by student.age)
where b=m.age
}