フロール

Type of expression in the XQuery programming language

FLWOR(発音は「フラワー」)は、XQueryプログラミング言語における反復処理と変数の中間結果へのバインディングをサポートする式です。FLWORは、FORLET、WHERE、ORDER BY、RETURNの頭字語です。[1] FLWORはSQLSELECT-FROM-WHERE に類似しており、 XML文書に結合のような機能を提供するために使用できます

  • forはノードのシーケンスを作成する
  • letはシーケンスを変数にバインドします
  • ブール式でノードをフィルタリングする
  • order byはノードをソートします
  • returnは各ノードに対して1回評価されます

   for $ d in doc ( "depts.xml" )// deptno let $ e := doc ( "emps.xml" )// employee [ deptno = $ d ] where count ( $ e ) >= 10 order by avg ( $ e / salary ) descending return <big-dept> { $ d , <headcount> { count ( $ e )} </headcount> , <avgsal> { avg ( $ e / salary )} </avgsal> } </big-dept>   
        
      
     
   
     
         
           
           
        
     

XQueryリクエストの最初の列には、FLWORパラダイムのforletwhereorder byreturnキーワードが表示されています。これは平易な言葉で言えば、 「従業員が10人を超えるすべての部門を取得し、これらの部門を平均給与の降順で並べ替え、各主要部門の部門番号、従業員数、平均給与のレポートを返す」という意味になります。結果は次のようになります。

<big-dept> 
<deptno> 17 </deptno> <headcount> 25 </headcount> <avgsal> 12500 </avgsal> </big-dept> <big-dept> <deptno> 24 </deptno> <headcount> 18 </headcount> <avgsal> 11327 </avgsal> </big-dept> <big-dept> <deptno> 3 </deptno> <headcount> 32 </headcount> <avgsal> 10725 </avgsal> </big-dept>    
    
    


    
    
    


    
    
    

Microsoft SQL Server を使用した例

@xml XMLを宣言する  

SET @xml = '<ルート要素> 	<ブランチ要素> 		<項目1>42</項目1> 		<項目2>27 </項目2> </ブランチ要素	> 	<ブランチ要素> <項目1>a</項目		1> <項目2> 		b</項目2> </	ブランチ要素> </ルート要素>'   











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 ); 
		  
		  
	   

参考文献

  1. ^ ウォルムズリー、プリシラ (2007)。 Xクエリ。米国カリフォルニア州セバストポル: O'Reilly Media。 p. 73.ISBN 978-0-596-00634-1
  • W3C XML クエリ (XQuery) - FLWOR 式
  • FLWORの例
  • FLWORの紹介
  • https://web.archive.org/web/20111008001258/http://w3schools.com/xquery/xquery_flwor.asp


Retrieved from "https://en.wikipedia.org/w/index.php?title=FLWOR&oldid=1318807495"