top1 只有在ACCESS 和SQL 中才有,你用order by desc取第一条吧
解决方案 »
- VC怎么调用ORACLE的存储过程?
- Oracle高手看过来,超长SQL语句返回记录集
- 绝对高手进>++++*>不利用oracle管理平台 也不能在cmd下输入命令 在应用程序里 如何实现数据库的备份与恢复
- 专门配置一台透明网关服务器连接Sql Server 2K,跟Oracle数据库服务器分开,DBLink也建好了,调用不了,老是提示“TNS: 无法处理服务名”
- 各位:orcale8.1.7 怎么创建读blob字段的存储过程?
- 没有的数据我也想找出来怎么找?各位大侠,救命~~~~~~
- 读取Oracle繁体数据,显示乱码
- oracle客户端连接服务器连接服务器的问题
- 请问如何做打包程序时,如何将ORACLE所必须的文件及注册表项打包进来?
- 同一张表中一条记录根据另一条记录进行更新
- 求救一条SQL!!~~!!!~~~
- 奇怪的问题,请高手解释一下
SELECT dept_ID,dept_Name,ParentID,(select count(*) from share_dept c where c.parentid=a.dept_id) as Child,(select dept_ID from share_dept b where rownum<2 and b.ParentID=a.dept_ID ORDER BY parentID desc,to_char(dept_id) desc) AS EndCata FROM share_dept a order by to_char(dept_id) asc把top1 去掉。加上ROWNUM<2就可以了但是不知道为什么.那个()内的select 语句不能order by
在ORACLE中执行他显示ORDER BY那边出错
我把ORDER BY 全部去掉后好象排序和以前的不一样。程序会出错而且会出现类型不匹配
如果是9i及以上应该就可以过的.
1.子查询作为字段值的时候不能直接使用order by,不管哪个版本都一样,8i以后可以多嵌套一层来避免错误
2.要先在子查询中排序再在外层查询中取rownum=1的纪录,否则仍然取得排序前的rownum =1的纪录另外按你的意思,不要用rownum,用max就可以了啊SELECT dept_ID,
dept_Name,
ParentID,
(SELECT COUNT(*) FROM share_dept c WHERE c.parentid = a.dept_id) AS Child,
(SELECT max(b.dept_ID) FROM share_dept b AND b.ParentID = a.dept_ID) AS EndCata
FROM share_dept a
ORDER BY to_char(dept_id) ASC
DEPT_ID DEPT_NAME,PARENT_ID,CHILD,ENDCATA
1 泉州移动 0 1 11
11 网络部 1 2 111
111 工程中心 11 0
112 IT中心 11 0 是大概这样的结构
而ENDCATA是显示最后一个啊.应该是112才对..是用MAX()吗?
我试试喔..