| Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 - |
目次
索引
![]()
|
| 付録B 検索式、リターン式およびソート式の書式 | > B.4 リターン式 |
以下にリターン式の例を示します。
文書A
<doc>
<companyname>fujitsu</companyname>
<employee position="manager">
<name>tanaka</name>
<id>2000</id>
<age>30才</age>
<comment></comment>
</employee>
</doc> |
文書B
<doc>
<companyname>fujitsu</companyname>
<employee position="chief">
<name>suzuki</name>
<id>1000</id>
<age>35才</age>
<comment>team leader</comment>
</employee>
</doc> |
例1 avg関数の例
リターン式
avg(/doc/employee/age/text())ソート式
/doc/companyname/text()結果
32.5
例2 count関数に属性式を指定した例
リターン式
count(/doc/employee/@position)ソート式
/doc/employee/text()結果
2
複数のリターン項目を指定した場合は、結果として返す各リターン項目の値が区切り文字で区切られます。
例3 複数のリターン項目を指定した場合の例
リターン式
avg(/doc/employee/age/text()),count(/doc/employee/name/text())ソート式
/doc/companyname/text()結果
32.5,2

テキスト式で指定したテキストノードまたは属性式で指定した属性ノードが同一文書中に複数存在する場合は、先頭のテキストノードの値または属性ノードの値を利用します。例
以下の場合、avg関数の引数“/student/subject/test/score/text()”の値は、文書Aは集計の対象外、文書Bは80、文書Cは0として扱います。文書A
<student> <name>tanaka</name> <subject> <subjectname>science</subjectname> </subject> <name>tanaka</name> </student>文書B
<student> <name>suzuki</name> <subject> <subjectname>science</subjectname> <test> <date>2006年01月12日</date> <score>80</score> </test> <test> <date>2005年12月08日</date> <score>70</score> </test> </subject> </student>文書C
<student> <name>satou</name> <subject> <subjectname>science</subjectname> <test> <date>2006年01月12日</date> <score>--</score> </test> </subject> </student>リターン式
avg(/student/subject/test/score/text())ソート式
/student/subject/subjectname/text()結果
40
目次
索引
![]()
|