ページの先頭行へ戻る
Interstage Shunsaku Data Manager アプリケーション開発ガイド

B.5.2 ソート式の指定例

以下にソートまたは集計を行う場合のソート式の例を示します。


文書A
<employee>
  <name>tanaka</name><age>33</age><dept id="0001">sales</dept>
</employee>

文書B
<employee>
  <name>suzuki</name><age>30</age><dept id="0002">general affairs</dept>
</employee>

文書C
<employee>
  <name>satou</name><age>22</age><dept id="0001">sales</dept>
</employee>

文書D
<employee>
  <name>yamada</name><age>56</age><dept id="0001">sales</dept>
</employee>

文書E
<employee>
  <name>itou</name><dept id="0002">general affairs</dept>
</employee>

文書F
<employee>
  <name>nakamura</name><age>42</age><dept id="0002">general affairs</dept>
</employee>

ソートを行う場合の記述例


例1

リターン式

/employee/name/text(),/employee/age/text()

ソート式

val(/employee/age/text())

結果

Java APIの場合

satou,22
suzuki,30
tanaka,33
nakamura,42
yamada,56
itou,

.NET APIの場合

satou \1 22
suzuki \1 30
tanaka \1 33
nakamura \1 42
yamada \1 56
itou \1

C APIの場合

satou \1 22 \1
suzuki \1 30 \1
tanaka \1 33 \1
nakamura \1 42 \1
yamada \1 56 \1
itou \1 \1

例2

リターン式

/employee/name,/employee/age

ソート式

val(/employee/age/text())

結果

<employee><name>satou</name><age>22</age></employee>
<employee><name>suzuki</name><age>30</age></employee>
<employee><name>tanaka</name><age>33</age></employee>
<employee><name>nakamura</name><age>42</age></employee>
<employee><name>yamada</name><age>56</age></employee>
<employee><name>itou</name></employee>

例3

リターン式

/employee/name/text(),/employee/age/text(),val(/employee/dept/@id)

ソート式

val(/employee/dept/@id),val(/employee/age/text())

結果

satou,22,0001
tanaka,33,0001
yamada,56,0001
suzuki,30,0002
nakamura,42,0002
itou,,0002

集計を行う場合の記述例


例1

リターン式

avg(/employee/age/text()),count(/employee/age/text()),/employee/dept/text()

ソート式

/employee/dept/text()

結果

Java APIの場合

36,2,general affairs 
37,3,sales 

.NET APIの場合

36 \1 2 \1 general affairs
37 \1 3 \1 sales

C APIの場合

36 \1 2 \1 general affairs \1
37 \1 3 \1 sales \1

例2

リターン式

avg(/employee/age/text()),count(/employee/age/text()),/employee/dept/@id

ソート式

/employee/dept/@id

結果

Java APIの場合

37,3,0001
36,2,0002

.NET APIの場合

37 \1 3 \1 0001
36 \1 2 \1 0002

C APIの場合

37 \1 3 \1 0001 \1
36 \1 2 \1 0002 \1