stringtranslate.com

FLWOR

El lenguaje de programación XQuery define FLWOR (pronunciado 'flower') como una expresión que admite la iteración y la vinculación de variables a resultados intermedios. FLWOR es un acrónimo: FOR , LET , WHERE, ORDER BY, RETURN. [1] FLWOR es vagamente análogo a SELECT-FROM-WHERE de SQL y se puede utilizar para proporcionar una funcionalidad similar a la de unión a documentos XML .

Ejemplo

 para $ d en doc ( "depts.xml" )// deptno let $ e := doc ( "emps.xml" )// empleado [ deptno = $ d ] donde count ( $ e ) >= 10 ordenar por avg ( $ e / salario ) descendente devolver <big-dept> { $ d , <headcount> { count ( $ e )} </headcount> , <avgsal> { avg ( $ e / salario )} </avgsal> } </big-dept>                        

La primera columna de la solicitud XQuery muestra las palabras clave for , let , where , order by y return del paradigma FLWOR. En lenguaje sencillo, esto podría leerse como "Obtener todos los departamentos que tienen más de diez empleados, ordenar estos departamentos por salario promedio decreciente y devolver un informe de números de departamento, recuentos de personal y salario promedio en cada departamento grande" . El resultado podría verse así:

<gran-dept> <n°dept > 17 </n°dept> <número de personal> 25 < /número de personal> <promedio> 12500 </promedio> </gran-dept> <gran-dept> < n° dept > 24 < /n°dept> <número de personal > 18 </número de personal > <promedio> 11327 </promedio> </gran-dept> <gran-dept> < n° dept > 3 </ n° dept > <número de personal > 32 </número de personal> <promedio> 10725 </promedio> </gran-dept>         

Ejemplo utilizando Microsoft SQL Server

DECLARAR @xml XML  ESTABLECER @xml = '<elemento_raíz> <elemento_rama> <elemento_1>42</elemento_1> <elemento_2>27</elemento_2> </elemento_rama> <elemento_rama> <elemento_1>a</elemento_1> <elemento_2>b</elemento_2> </elemento_rama> </elemento_raíz> '   SELECCIONAR x . y . consulta ( 'para $s en self::node() devolver $s//item_1/text()' ) como i , x . y . consulta ( 'para $s en self::node() devolver $s//item_2/text()' ) como j DE @xml . nodes ( '/root_element' ) COMO x ( y );        

Referencias

  1. ^ Walmsley, Priscila (2007). XQuery. Sebastopol, CA, EE.UU.: O'Reilly Media. pag. 73.ISBN​ 978-0-596-00634-1.

Enlaces externos