u010152179 2014-12-15 09:57 采纳率: 0%
浏览 3030

把oracle start with 转为 sql server with语句,创建视图不成功

oracle start with语句
create or replace view VV_Select as
select "CORPCODE","CORPDESC","USERCODE","USERDESC"
from
(
select bc.corpcode,bc.corpdesc, aa.usercode,aa.userdesc from base_corp bc,base_user aa where bc.corpcode in (select distinct(corpcode)
from base_corp t
start with t.corpcode in
(select c.corpcode
from RIGHT_RIGHTUSER A, BASE_CORP c
WHERE A.DATACODE = c.CORPCODE
AND A.CLASSFICATIONID = '1'
AND A.USERCODE = aa.usercode)
CONNECT BY PRIOR t.corpid = t.parentid)
) a
group by a.corpcode, a.corpdesc, a.usercode, a.userdesc;

SQL SERVER with 语句
create view VV_Select as
select CORPCODE,CORPDESC,USERCODE,USERDESC
from
(
SELECT BC.CORPCODE, BC.CORPDESC, AA.USERCODE, AA.USERDESC
FROM MLS_BASE_CORP BC, MLS_BASE_USER AA
WHERE BC.CORPCODE IN
(WITH STEPCTE(CORPCODE) AS
(SELECT DISTINCT (CORPCODE)
FROM MLS_BASE_CORP T
WHERE T.CORPCODE IN
(SELECT C.CORPCODE
FROM MLS_RIGHT_RIGHTUSER A,
MLS_BASE_CORP C,
MLS_BASE_USER UU
WHERE A.DATACODE = C.CORPCODE
AND A.CLASSFICATIONID = '1'
AND A.USERCODE = UU.USERCODE)
UNION ALL
SELECT A.CORPCODE
FROM MLS_BASE_CORP A
INNER JOIN STEPCTE CTE
ON CTE.CORPCODE = A.CORPCODE)
SELECT CORPCODE FROM STEPCTE
)
) a group by a.corpcode, a.corpdesc, a.usercode, a.userdesc;
创建的时候报错
[Err] 42000 - [SQL Server]关键字 'WITH' 附近有语法错误。
42000 - [SQL Server]关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。
42000 - [SQL Server]')' 附近有语法错误。

  • 写回答

3条回答 默认 最新

  • FoolRabbit 2014-12-16 03:09
    关注
     create view VV_Select as
    select CORPCODE,CORPDESC,USERCODE,USERDESC
    from
    (
    SELECT BC.CORPCODE, BC.CORPDESC, AA.USERCODE, AA.USERDESC
    FROM MLS_BASE_CORP BC, MLS_BASE_USER AA
    WHERE BC.CORPCODE IN (SELECT DISTINCT CORPCODE
                            FROM MLS_BASE_CORP T
                                WHERE T.CORPCODE IN (SELECT C.CORPCODE 
                                                        FROM MLS_RIGHT_RIGHTUSER A,
                                                        MLS_BASE_CORP C,
                                                        MLS_BASE_USER UU
                                                        WHERE A.DATACODE = C.CORPCODE
                                                        AND A.CLASSFICATIONID = '1'
                                                        AND A.USERCODE = UU.USERCODE)
                            UNION ALL
                        SELECT A.CORPCODE
                            FROM MLS_BASE_CORP A
                                INNER JOIN STEPCTE CTE ON CTE.CORPCODE = A.CORPCODE)
    ) a group by a.corpcode, a.corpdesc, a.usercode, a.userdesc;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配