sql server oracle 语法转换(简单)

来源:百度知道 编辑:UC知道 时间:2024/05/19 05:28:30
DECLARE @sql2 varchar(8000),@sql3 varchar(8000), @sql varchar(8000)
set @sql='select strName as 姓名,sum(strscore) as 总数'
set @sql2='select ''合计'',sum(strscore) as 合计 '
print @sql
select @sql=@sql+','+course.strname+'=isnull(sum(case strCourse when '''+course.strname+''' then strScore end),0)'
from course order by strid
select @sql2=@sql2+','+course.strname+'=isnull(sum(case strCourse when '''+course.strname+''' then strScore end),0)'
from course order by strid
set @sql=@sql+' from strStudent group by strName'
set @sql2=@sql2+' from strStudent'
set @sql3=@sql+' union all '+@sql2
print @sql3
exec (@sql3)
以上是SQL SERVER查询语句,由于本人要移值到ORACLE中,以前未接触过ORACLE语法,所以请人帮帮忙,把上写的SQL语法改或关键字成ORACLE的,谢谢了。在线等

declare @sql2 varchar2(8000),@sql3 varchar2(8000),@sql varchar2(8000)
begin
set @sql='select strName as 姓名,sum(strscore) as 总数'
set @sql2='select 合计,sum(strscore) as 合计'
dbms_output.putline(@sql)
set @sql=@sql||','||course.strname||'=isnull(sum(case strCourse when '''||course.strname||''' then strScore end),0)'
from course order by strid
set @sql2=@sql2||','||course.strname||'=isnull(sum(case strCourse when '''||course.strname||''' then strScore end),0)'
from course order by strid
set @sql=@sql||' from strStudent group by strName'
set @sql2=@sql2||' from strStudent'
set @sql3=@sql||' union all '||@sql2
dbms_output.putline(@sql3)
/
end

只是做了大致的修改,用的电脑没有装Oracle 无法调试 错误肯定有 希望有高手给出更好的答案。
另外楼主写出的sql语句有几句实在是看不太明白

这个什么SQL语句啊,语法根本就不对的

相信你贴上来的 sql 在 sqlserver 里也执行不了