XQuery リファレンス

     前  次    目次     
ここから内容

XQuery 合計関数リファレンス

この章では、WebLogic Workshop のマッパー機能で使用できる XQuery 合計関数について説明します。マッパー機能を使用してクエリを生成し、クエリを編集して、提供されている XQuery 関数への呼び出しを追加します。詳細については、クエリ内での関数または演算子の呼び出しを参照してください。

マッパー機能で使用できる XQuery 関数および演算子以外にも、数多くの追加の関数および演算子が用意されています。マッパー機能のソース ビューを使用すると、これらの関数および演算子の呼び出しを手動でクエリに追加できます。追加の関数と演算子のリストについては、次の URL にある W3C Web サイトで、XQuery 1.0 and XPath 2.0 Functions and Operators - W3C Working Draft 16 August 2002 を参照してください。

http://www.w3.org/TR/2002/WD-xquery-operators-20020816

この節では、マッパー ツールで使用できる合計関数のリストを示します。

 


xf: count

シーケンス内の項目の数を数えます。

シグネチャ

xf:count(item*$item-var) —>xs: unsignedInt

表 7-1 引数
データ型
引数
説明
item*
$item-var
数えるシーケンスを表します。

戻り値

$item-var に渡されたシーケンス内の項目の数を unsignedInt 値として返します。

$item-var が空のシーケンスである場合は、0 を返します。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。

単純な例

次のクエリ例のように、count(("a","b","c")) を呼び出すと、符号なしの整数値 3 が返されます。

<result>{xf:count(("a","b","c"))}</result>

上のクエリからは、次の結果が生成されます。

<result>3</result>

空のシーケンス

次のクエリ例のように、count(()) を呼び出すと、() は空のシーケンス (要素を含まない) であるため、符号なしの整数値 0 が返されます。

<result>{xf:count(())}</result>

上のクエリからは、次の結果が生成されます。

<result>0</result>

関連トピック

W3C の count 関数の説明。

 


xf: avg

シーケンス内のすべての数の平均を決定します。

$item-var の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。

シグネチャ

xf:avg(item* $item-var) —> xs: double?

表 7-2 引数
データ型
引数
説明
item*
$item-var
加算される数のシーケンスを表します。

戻り値

$item-var に渡されたシーケンス内のすべての数の平均を返します。

単純な例

次のクエリ例のように、xf:avg(("3","1","2")) を呼び出すと、値 2.0 が返されます。

<result>{xf:avg(("3","1","2"))}</result>

上のクエリからは、次の結果が生成されます。

<result>2.0</result>

空のシーケンス

次のクエリ例のように、xf:avg((1,(),6,2,9)) を呼び出すと、値 4.5 が返されます。

<result>{xf:avg((1,(),6,2,9))}</result>

上のクエリからは、次の結果が生成されます。

<result>4.5</result>

注意 : 空のシーケンス () のインスタンスは無視されます。
ノード

次のクエリ例のように、クエリを呼び出すと、値 50 が返されます。

let $x := <a>100</a>

let $y := <b>50</b>

let $z := <c>0</c>

return <result>{xf:avg(($x,$y,$z))}</result>

上のクエリからは、次の結果が生成されます。

<result>50.0</result>

この例では、数を平均する前に、シーケンス内の各ノードに対して data 関数が呼び出されたかのように、ノードの値が抽出されています。

関連トピック

W3C の avg 関数の説明。

 


xf: max

シーケンス内の最大値を検索します。

$item-var の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。

シグネチャ

xf:max(integer* $integer-var) —> xs: anySimpleType?

表 7-3 引数
データ型
引数
説明
integer*
$integer-var
評価するシーケンスを表します。

戻り値

$item-var に渡されたシーケンス内の最大値を返します。

単純な例

次のクエリ例のように、xf:max(("3","1","2")) を呼び出すと、値 3 が返されます。

<result>{xf:max(("3","1","2"))}</result>

上のクエリからは、次の結果が生成されます。

<result>3</result>

空のシーケンス

次のクエリ例のように、xf:max((1,(),6,2,9)) を呼び出すと、値 9 が返されます。

<result>{xf:max((1,(),6,2,9))}</result>

上のクエリからは、次の結果が生成されます。

<result>9</result>

注意 : 空のシーケンス () のインスタンスは無視されます。
ノード

次のクエリ例のように、クエリを呼び出すと、値 100 が返されます。

let $x := <a>100</a>

let $y := <b>2</b>

let $z := <c>50</c>

return <result>{xf:max(($x,$y,$z))}</result>

上のクエリからは、次の結果が生成されます。

<result>50</result>

この例では、最大値を決定するための比較を行う前に、シーケンス内の各ノードに対して data 関数が呼び出されたかのように、ノードの値が抽出されています。ただし、ノードの整数値ではなく、ノードの文字列値が抽出して比較されます。上のクエリでは、文字 5 の ASCII 値は文字列 100 の最初の文字 1 の ASCII 値よりも大きいため、最大値として文字列 50 が返されます。代わりにノードの整数値を比較するには、次のクエリ例のように、最初に bea-xf:integer-sequence 関数を使用してノード シーケンスを整数に変換してから、xf:max 関数を呼び出します。

let $x := <a>100</a>

let $y := <b>2</b>

let $z := <c>50</c>

return <result>{xf:max(bea-xf:integer-sequence(($x,$y,$z)))}</result>

上のクエリからは、次の結果が生成されます。

<result>100</result>

関連トピック

W3C の max 関数の説明。

BEA の bea-xf: integer-sequence 関数の説明

 


xf: min

シーケンス内の最小値を検索します。

$item-var の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。

シグネチャ

xf:min(integer* $integer-var) —> xs: anySimpleType?

表 7-4 引数
データ型
引数
説明
integer*
$integer-var
評価するシーケンスを表します。

戻り値

$item-var に渡されたシーケンス内の最小値を返します。

単純な例

次のクエリ例のように、xf:min(("3","1","2")) を呼び出すと、値 1 が返されます。

<result>{xf:min(("3","1","2"))}</result>

上のクエリからは、次の結果が生成されます。

<result>1</result>

空のシーケンス

次のクエリ例のように、xf:min((1,(),6,2,9)) を呼び出すと、値 1 が返されます。

<result>{xf:min((1,(),6,2,9))}</result>

上のクエリからは、次の結果が生成されます。

<result>1</result>

注意 : 空のシーケンス () のインスタンスは無視されます。
ノード

次のクエリ例のように、クエリを呼び出すと、シーケンス内の最小の数として値 2 が返されます。

let $x := <a>100</a>

let $y := <b>2</b>

let $z := <c>50</c>

return <result>{xf:min(($x,$y,$z))}</result>

上のクエリからは、次の結果が生成されます。

<result>100</result>

この例では、最小値を決定するための比較を行う前に、シーケンス内の各ノードに対して data 関数が呼び出されたかのように、ノードの値が抽出されています。ただし、ノードの整数値ではなく、ノードの文字列値が抽出して比較されます。上のクエリでは、文字 1 の ASCII 値は文字列 50 の最初の文字 5 の ASCII 値よりも小さいため、最小値として文字列 100 が返されます。代わりにノードの整数値を比較するには、次のクエリ例のように、最初に bea-xf:integer-sequence 関数を使用してノード シーケンスを整数に変換してから、xf:min 関数を呼び出します。

let $x := <a>100</a>

let $y := <b>2</b>

let $z := <c>50</c>

return <result>{xf:min(bea-xf:integer-sequence(($x,$y,$z)))}</result>

上のクエリからは、次の結果が生成されます。

<result>2</result>

関連トピック

W3C の min 関数の説明。

BEA の bea-xf: integer-sequence 関数の説明

 


xf: sum

シーケンス内のすべての項目の合計を決定します。

シグネチャ

xf:sum(item*$item-var) —> xs: double?

表 7-5 引数
データ型
引数
説明
item*
$item-var
評価するシーケンスを表します。

戻り値

$item-var に渡されたシーケンス内のすべての数の合計を返します。

$item-var が空のシーケンスである場合は、0.0 を返します。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。

単純な例

次のクエリ例のように、xf:sum(("3","1","2")) を呼び出すと、値 6 が返されます。

<result>{xf:sum(("3","1","2"))}</result>

上のクエリからは、次の結果が生成されます。

<result>6.0</result>

空のシーケンス

次のクエリ例のように、xf:sum((1,(),6,2,9)) を呼び出すと、値 18 が返されます。

<result>{xf:sum((1,(),6,2,9))}</result>

上のクエリからは、次の結果が生成されます。

<result>18.0</result>

注意 : 空のシーケンス () のインスタンスは無視されます。
ノード

次のクエリ例のように、クエリを呼び出すと、値 152 が返されます。

let $x := <a>100</a>

let $y := <b>2</b>

let $z := <c>50</c>

return <result>{xf:sum(($x,$y,$z))}</result>

上のクエリからは、次の結果が生成されます。

<result>152.0</result>

この例では、数を加算する前に、シーケンス内の各ノードに対して data 関数が呼び出されたかのように、ノードの値が抽出されています。

関連トピック

W3C の sum 関数の説明。


  ページの先頭       前  次