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
目次
索引
![]() ![]() |