Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 - |
目次
索引
![]() ![]() |
第1部 アプリケーション開発の基本 | > 第3章 データを検索する方法 | > 3.7 集計した結果を取り出す | > 3.7.1 検索結果をグループ化する |
XML文書中の任意の要素ノードまたはその要素ノードの属性ノードの値でグループ化を行うことができます。文字列でグループ化を行う場合は、ソート式のキー指定にテキスト式または属性式を指定します。
例として以下の文書があるものとします。
文書A
<doc> <employee eno="19980120" position="general manager"> : <name>鈴木太郎</name> : </employee> : <detail> : <destination area="愛知県名古屋市千種区覚王山">愛知支店</destination> : </detail> : </doc> |
文書B
<doc> <employee eno="19980120" position="general manager"> : <name>鈴木太郎</name> : </employee> : <detail> : <destination area="東京都千代田区八重洲">東京支店</destination> : </detail> : </doc> |
文書C
<doc> <employee eno="20012111" position="manager"> : <name>佐藤花子</name> : </employee> : <detail> : <destination area="東京都千代田区八重洲">東京支店</destination> : </detail> : </doc> |
文書D
<doc> <employee eno="20012111" position="manager"> : <name>佐藤花子</name> : </employee> : <detail> : <destination area="愛知県名古屋市千種区今池">愛知支社 </destination> : </detail> : </doc> |
例1
従業員氏名(name)でグループ化します
/doc/employee/name/text()結果:文書AとBが1つのグループ、文書CとDが1つのグループとして扱われます。
例2
地位(position)でグループ化します。
/doc/employee/@position結果:文書AとBが1つのグループ、文書CとDが1つのグループとして扱われます。
文字列でグループ化を行う場合、文字列の先頭20バイトをキーにしてグループ化します。キー指定が示すXML文書中の値が20バイトよりも大きくなる可能性がある場合は、20バイト目以降が異なる文字列であるのに同一グループとみなされることがあります。このような場合は、キー指定にrlen関数を指定して、先頭から何文字をキーとするかを指定できます。
rlen関数の詳細については、“B.2.4 単一行関数指定”を参照してください。
例3
出張エリア(area)でグループ化したい場合
rlen(/doc/detail/destination/@area,30)上記のように指定すると、出張エリアの先頭から30文字でグループ化します。
目次
索引
![]() ![]() |