gpt4 book ai didi

sql - ")x"在查询中意味着什么?

转载 作者:行者123 更新时间:2023-12-03 01:53:54 27 4
gpt4 key购买 nike

我有以下存储过程(在 MS SQL 中):

SET NOCOUNT ON

DECLARE @Cuantos INT

IF EXISTS
(
SELECT TOP 1 * FROM IntProgramas WHERE cod_programa IN
( SELECT cod_programa FROM IntGrupo_programa WHERE cod_grupo IN
( SELECT cod_grupo FROM IntUsuarios WHERE cod_usuario = @cod_usuario
)
)
)
BEGIN
SET nocount ON

SELECT P.cod_programa
,nb_programa
,descripcion
,secuencia
,P.Accion
,P.Controlador
INTO #mitabla1
FROM IntProgramas P
WHERE P.cod_programa
IN (
SELECT cod_programa FROM Intgrupo_programa WHERE cod_grupo IN
(
SELECT cod_grupo FROM Intusuarios WHERE cod_usuario=@cod_usuario
)
)

SET nocount ON

SELECT GP.cod_programa
,P.nb_programa
,P.descripcion
INTO #mitabla2
FROM IntGrupo_Programa GP
JOIN Intprogramas P on GP.cod_programa = P.cod_programa
WHERE GP.cod_grupo IN (SELECT cod_grupo FROM Intusuarios WHERE cod_usuario=@cod_usuario
SELECT @Cuantos = COUNT(*)
FROM( SELECT nb_programa, descripcion FROM IntProgramas
WHERE cod_programa in (select cod_programa from #mitabla1
union select cod_programa from #mitabla2))x

/*si existe en ambas macheo*/
SELECT nb_programa, descripcion, P.cod_programa
INTO #mitabla3
FROM IntProgramas P
WHERE cod_programa in (SELECT cod_programa FROM #mitabla1
union SELECT cod_programa FROM #mitabla2)

select
t.nb_programa
, t.descripcion
, t.cod_programa
, p.secuencia
, ISNULL(et.cod_menu,0) as cod_menu
, ISNULL(et.desc_menu,0) as desc_menu
, ISNULL(et_sprog.cod_sub_menu_programa,0) AS cod_sub_menu_programa
, ISNULL(et_sprov.desc_sub_menu,0) AS desc_sub_menu_N2
, p.Accion
, p.Controlador
from #mitabla3 t
JOIN IntProgramas p
ON t.cod_programa = p.cod_programa

LEFT JOIN IntEstructura_sub_menu_programa et_sprog
ON t.cod_programa = et_sprog.cod_programa

LEFT JOIN IntEstructura_menu_Usuarios et
ON et_sprog.cod_menu = et.cod_menu

LEFT JOIN IntEstructura_sub_menu_Usuarios et_sprov
ON et_sprog.cod_sub_menu_programa = et_sprov.cod_sub_menu

WHERE et_sprog.cod_programa IS NOT NULL

order by et.cod_menu, et_sprog.cod_sub_menu_programa, p.secuencia
--gp.cod_grupo,

drop table #mitabla1
drop table #mitabla2
drop table #mitabla3


END

我试图理解它,但是当我到达终点线

union  select cod_programa from #mitabla2))x

我不明白 x 有什么作用,如有帮助,我们将不胜感激。我一直在尝试分段运行 SP,以更好地理解流程,但那条线对我来说确实很复杂。

最佳答案

X 是此子查询或派生表的别名:

( SELECT  nb_programa, descripcion FROM IntProgramas 
WHERE cod_programa in (select cod_programa from #mitabla1
union select cod_programa from #mitabla2))

关于sql - ")x"在查询中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20576746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com