注册 登录
编程论坛 Oracle论坛

ms sql到oracle sql的转换

samchew 发布于 2009-08-17 09:27, 1126 次点击
请大家帮帮忙,把下面的sql语句转换成能在oracle下面跑的,此语句在ms sql server下编译无误,请大家帮个忙,急,在线等,万分感谢!



declare @sql varchar(8000)
set @sql = 'select (case when grouping(t2.itemname)=1 then ''总计'' else t2.itemname end) as itemname,'
select @sql = @sql+ ' sum(case when TRANSACTID= '+TRANSACTID+' then 1 else 0 end) as ['+TRANSACTID+'],'
From (Select Distinct TRANSACTID From C_ACCEPT_STATUS) T
set @sql = left(@sql,len(@sql)-1)+',(case when count(1)=0 then ''0'' else count(*) end) as ''总计''
      from WORKAPPLY t left join C_ADMIN_ITEM t2
        on t.itemid=t2.itemcode  group by t2.itemname with rollup'
exec(@sql)
2 回复
#2
夜风敲窗2009-08-18 11:06
oracle中变量名不需要加@
#3
xibeilang2009-08-22 13:21
--按照PLSql语法把你的逻辑套进去就可以了。
Declare
   L_Sql Varchar(8000);
Begin
   --
   L_Sql := L_Sql + '';
   
   Execute L_Sql;
Exception
   When Others Then
      dbms_output.put_line(Sqlerrm);
End;
1