
pasar query de oracle a sql server
Publicado por Javier (1 intervención) el 25/11/2015 19:48:44
EStimados favor su ayuda al momento no conosco mucho de sql server y no se como puedo hacer para pasar este query que se encuentra de oracle a sqlserver
Gracias por su ayuda
Al momento solo he podido cambiar la primera parte de esta manera pero aun no lego al objetivo
Gracias por su ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SELECT SYS_CONNECT_BY_PATH(TRIM(A.OPCION_MENU), '/') "PATH"
FROM (SELECT T.ID_IVR_MEN_REC,
T.ID_OPCION,
T.ID_OPCION_PADRE,
T.OPCION_MENU
FROM IVR_MENU_RECURSIVO T
GROUP BY T.ID_IVR_MEN_REC,
T.ID_OPCION,
T.ID_OPCION_PADRE,
T.OPCION_MENU
START WITH T.ID_IVR_MEN_REC IN
(SELECT DISTINCT X.ID_IVR_MEN_REC
FROM IVR_MENU_RECURSIVO X
WHERE X.ID_MENU = CV_IDMENU
UNION
SELECT DISTINCT Y.ID_IVR_MEN_REC
FROM IVR_MENU_DETALLE Y
WHERE Y.ID_MENU = CV_IDMENU)
CONNECT BY PRIOR T.ID_OPCION_PADRE = T.ID_OPCION
ORDER BY T.ID_OPCION) A
WHERE A.ID_IVR_MEN_REC IN
(SELECT DISTINCT X.ID_IVR_MEN_REC
FROM IVR_MENU_RECURSIVO X
WHERE X.ID_MENU = CV_IDMENU
UNION
SELECT DISTINCT Y.ID_IVR_MEN_REC
FROM IVR_MENU_DETALLE Y
WHERE Y.ID_MENU = CV_IDMENU)
CONNECT BY PRIOR A.ID_OPCION = A.ID_OPCION_PADRE
START WITH A.ID_OPCION_PADRE IS NULL;
Al momento solo he podido cambiar la primera parte de esta manera pero aun no lego al objetivo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
with x as (
select ID_IVR_MEN_REC
,ID_OPCION
,ID_OPCION_PADRE
,OPCION_MENU
,1 as level
, row_number()
over (partition by T.ID_IVR_MEN_REC
order by T.OPCION_MENU
--GROUP BY T.ID_IVR_MEN_REC
-- ,T.ID_OPCION
-- ,T.ID_OPCION_PADRE
-- T.OPCION_MENU
) as rn
,T.OPCION_MENU as scbp
from IVR_MENU_RECURSIVO T
),cte as (
select ID_IVR_MEN_REC
,OPCION_MENU
,level
,rn
,''/'' + cast(RTRIM(LTRIM(OPCION_MENU)) as varchar(max)) as scbp
from x
where rn = 1
union all
select x.ID_IVR_MEN_REC
,x.OPCION_MENU
,cte.level + 1 as level
,x.rn
,cte.scbp + ''/'' + cast(x.scbp as varchar(max)) as scbp
from x inner join cte on x.rn - 1 = cte.rn and x.ID_IVR_MEN_REC = cte.ID_IVR_MEN_REC
)
select ID_IVR_MEN_REC, max(scbp)
from cte
group by ID_IVR_MEN_REC
Valora esta pregunta


0