select
(select count(*) from t_bm) zrs,
(select count(*) from t_bm where bm_xb ='男') nrs,
(select count(*) from t_bm where bm_mz = '汉族') hrs
from dual;
(select count(*) from t_bm) zrs,
(select count(*) from t_bm where bm_xb ='男') nrs,
(select count(*) from t_bm where bm_mz = '汉族') hrs
from dual;
解决方案 »
- oracle提示触发器无效且未通过重新验证
- 客户不允许在他们的DB上建触发器,求感知表变化的算法或者思路
- 探讨IN和EXISTS,exists 是不是不完全能够替换in?
- 关于Oracle的XMLTYPE类型字段:如何转为字符型?如何列举所有节点?
- 如何将('a','b','c')这样的集合处理成结果集?
- 心情不好,(信誉分被扣除了)不能解答大家的问题了,请大家谅解。
- 请问VB中如何通过ODBC读取EXCEL文件的内容?希望能有读取的源码
- 数据备份的问题
- 查询条件问题。
- 8i 在 P4上如何装?在线等待,急,急,急,急,急,急,急,急,急,急!!!!
- oracle 8 的配置问题
- oracle中concat的使用,请指教!!!
(select count(*) zrs from t_bm ) A,
(select count(*) nrs from t_bm Where bm_xb ='男') B,
(select count(*) hrs from t_bm where bm_mz = '汉族') C
-- ----------
男 汉
男 汉
男 汉
男 汉
男 汉
女 汉
女 汉
女 藏
女 哈萨克
女 哈萨克
男 傣
男 布依
男 哈尼
女 维吾尔已选择14行。SQL> select count(bm_mz) total,
count(decode(bm_xb,'男',bm_xb,'')) male,
count(decode(bm_mz,'汉',bm_mz,'')) han_nationality
from t_bm; TOTAL MALE HAN_NATIONALITY
---------- ---------- ---------------
14 8 7
sum(case when bm_xb = '男' then 1 else 0 end) nrs,
sum(case when bm_mz = '汉' then 1 else 0 end) hrs
from t_bm;
sum(decode(bm_xb,'男',1,0)) nrs,
sum(decode(bm_mz,'汉',1,0)) hrs
from t_bm;
sum(decode(bm_xb,'男',1,0)) as nrs,
sum(decode(bm_mz,'汉族',1,0)) as hrs
from t_bm楼主散分。
sum(decode(bm_xb,'男',1,0)) male,
sum(decode(bm_mz,'汉',1,0)) han_nationality
from t_bm;
sum(decode(bm_xb,'男',1,0)) as nrs,
sum(decode(bm_mz,'汉族',1,0)) as hrs
from t_bm
的方法比嵌套的好多了。
sum(decode(bm_xb,'男',1,0)) as nrs,
sum(decode(bm_mz,'汉族',1,0)) as hrs
from t_bm
正确,楼主散分呀。
sum(decode(bm_xb,'男',1,0)) as nrs,
sum(decode(bm_mz,'汉族',1,0)) as hrs
from t_bm
where rownum=1 -------执行效率可能会好一点(如果需求的返行是1行的情况下)
sum(decode(bm_xb,'男',1,0)) as nrs,
sum(decode(bm_mz,'汉族',1,0)) as hrs
from t_bm
正确
另说明:我的题目中关于sql server 中的写法是错误的,请浏览的朋友不要效仿。
sql 中应该用 case 语句。