SELECT *,ID=IDENTITY(INT,1,1) INTO #
FROM sch_resource_qual
SELECT resource_code,qualification_no, dsp_seq=ID-(SELECT COUNT(*) FROM # WHERE resource_code<a.resource_code) INTO #1 FROM # AS A
UPDATE sch_resource_qual SET dsp_seq=#1.dsp_seq FROM sch_resource_qual,#1 WHERE sch_resource_qual.resource_code=#1.resource_code
AND sch_resource_qual.qualification_no=#1.qualification_no
DROP TABLE #
DROP TABLE #1
解决方案 »
- 游标 cc%rowcount;
- oracle10g rownum与order by的问题
- 求指点下 Oracle 10g监听配置的问题
- oracle不同IP不同数据库,同一机子如何连接上两个oracle数据库
- 谁能提供个logminer的下载地址啊?
- 关于Oracle中VARCHAR2类型长度何时必须指定的问题?
- 为何 两台机器上先后运行 select sysdate from dual 值相差很多?
- 那位在SOlaris9(SPARC)上装ORACLE9成功过的,进来帮帮忙,谢谢!
- 如何移动数据文件、日志文件,请高手指教!
- 请教:怎样把连接好的Oracle数据库用表格的形式显示出来?
- 关于group by 1
- 求教,删除表中的一列数据
可以写成PL\SQL block的方式。
可以先改成这样再执行:
create table tmp_1 as
SELECT a.*,rownum id
FROM sch_resource_qual a
/
create table tmp_2 as
SELECT resource_code,qualification_no,
(
SELECT COUNT(*)-id
FROM tmp_1
WHERE resource_code<a.resource_code
) dsp_seq
FROM tmp_1 AS A
/UPDATE sch_resource_qual a SET dsp_seq=(
select b.dsp_seq from tmp_2 b
where a.resource_code=b.resource_code
and a.qualification_no=b.qualification_no
)
where exists (
select b.dsp_seq from tmp_2 b
where a.resource_code=b.resource_code
and a.qualification_no=b.qualification_no
)
/
commit
/
DROP TABLE tmp_1
/
DROP TABLE tmp_2
/