FLWOR
   HOME

TheInfoList



OR:

The programming language
XQuery XQuery (XML Query) is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats (JSON, bin ...
defines FLWOR (pronounced 'flower') as an expression that supports iteration and binding of variables to intermediate results. FLWOR is an acronym: FOR,
LET Let or LET may refer to: Sports * Let serve, when the served object in certain racket sports hits the net and lands in the correct service court, such as; ** Let (badminton) ** Let (pickleball) ** Let (tennis) * Ladies European Tour, the ladi ...
, WHERE, ORDER BY, RETURN. FLWOR is loosely analogous to SQL's SELECT-FROM-WHERE and can be used to provide join-like functionality to
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
documents. *''for'' creates a sequence of nodes *''let'' binds a sequence to a variable *''where'' filters the nodes on a boolean expression *''order by'' sorts the nodes *''return'' gets evaluated once for every node


Example

for $d in doc("depts.xml")//deptno let $e := doc("emps.xml")//employee eptno = $d where count($e) >= 10 order by avg($e/salary) descending return First column of the XQuery request shows the for, let, where, order by and return keywords of the FLWOR paradigm. In plain English, this could be read as ''"Get all departments that have more than ten employees, order these departments by decreasing average salary, and return a report of department numbers, head counts and average salary in each big department"''. The result could look like: 17 25 12500 24 18 11327 3 32 10725


Example using Microsoft SQL Server

DECLARE @xml XML SET @xml = ' 42 27 a b ' SELECT x.y.query('for $s in self::node() return $s//item_1/text()') as i, x.y.query('for $s in self::node() return $s//item_2/text()') as j FROM @xml.nodes('/root_element') AS x(y);


References


External links


W3C XML Query (XQuery) - FLWOR Expressions




* https://web.archive.org/web/20111008001258/http://w3schools.com/xquery/xquery_flwor.asp XML {{Compu-lang-stub