Professional Documents
Culture Documents
Pgina 1 de 2
Al usar este sitio acepta el uso de cookies para anlisis, contenido personalizado y publicidad.
Saber ms
Usar APPLY
SQL Server 2008 R2
El operador APPLY permite invocar una funcin con valores de tabla para cada fila devuelta por una expresin de tabla externa de una consulta. La funcin con valores
de tabla acta como la entrada derecha y la expresin de tabla externa como la entrada izquierda. La entrada derecha se evala para cada fila de la entrada izquierda
y las filas producidas se combinan en la salida final. La lista de columnas producidas por el operador APPLY corresponde al conjunto de columnas de la entrada
izquierda, seguido de la lista de columnas devueltas por la entrada derecha.
Nota
Para utilizar APPLY, el nivel de compatibilidad de la base de datos debe ser al menos 90.
Existen dos formas de APPLY: CROSS APPLY y OUTER APPLY. CROSS APPLY slo devuelve las filas de la tabla externa que producen un conjunto de resultados de la
funcin con valores de tabla. OUTER APPLY devuelve tanto las filas que producen un conjunto de resultados como las que no, con valores NULL en la columna
producida por la funcin con valores de tabla.
Considere, por ejemplo, las siguientes tablas, Employees y Departments:
La mayora de los departamentos de la tabla Departments tienen un Id. de administrador que corresponde a un empleado de la tabla Employees. La siguiente
funcin con valores de tabla acepta un Id. de empleado como argumento y devuelve el empleado con todos sus subordinados.
http://technet.microsoft.com/es-es/library/ms175156(v=sql.105).aspx
02/03/2014
Usar APPLY
Pgina 2 de 2
Para que se devuelvan todos los subordinados de todos los niveles para el administrador de cada departamento, utilice la consulta siguiente.
deptid
1
1
1
2
2
2
2
2
3
4
5
5
deptname
HR
HR
HR
Marketing
Marketing
Marketing
Marketing
Marketing
Finance
R&D
Training
Training
deptmgrid
2
2
2
7
7
7
7
7
8
9
4
4
empid
2
5
6
7
11
12
13
14
8
9
4
10
empname
Andrew
Steven
Michael
Robert
David
Ron
Dan
James
Laura
Ann
Margaret
Ina
mgrid
1
2
2
3
7
7
7
11
3
3
1
4
lvl
0
1
1
0
1
1
1
2
0
0
0
1
Observe que cada fila de la tabla Departments se duplica tantas veces como filas de fn_getsubtree se devuelven para el administrador del departamento.
Adems, el departamento Gardening no aparece en los resultados. Como este departamento no tiene administrador, fn_getsubtree devolvi un conjunto vaco. Si
se utiliza OUTER APPLY, el departamento Gardening tambin aparecer en el conjunto de resultados, con valores NULL en el campo deptmgrid y en los campos
devueltos por fn_getsubtree.
Vea tambin
Referencia
FROM (Transact-SQL)
Te ha resultado til?
No
Adiciones de comunidad
2014 Microsoft. Reservados todos los derechos.
http://technet.microsoft.com/es-es/library/ms175156(v=sql.105).aspx
02/03/2014