0

OSB プロジェクトで XQuery を使用してデータベースにクエリを実行しています。次の表を検討してください。

userId Name    Category
------ ------- --------
1      Dheepan Student
2      Raju    Student

と XQuery

let $userName:=fn-bea:execute-sql(
            $dataSourceJndiName,
            xs:string("NAME"),
            xs:string("select NAME from USER where CATEGORY= 'Student'")
           )/*:NAME[1]
return <root> {data($userName)} </root>

このクエリでは、結果を として取得してい<root>Dheepan Raju</root>ます。ただし、クエリが次のように複数の行を返す場合でも、1 行だけを返す必要があります<root>Dheepan</root>。クエリで述語を使用[1]しましたが、値を連結して返す理由がわかりません。複数の行が返されるときに最初の行のみを返す方法を教えてください。

4

1 に答える 1

3

適切な括弧を使用する必要があります。

let $userName:=(fn-bea:execute-sql(
$dataSourceJndiName,
xs:string("NAME"),
xs:string("select NAME from USER where CATEGORY= 'Student'")
)/*:NAME)[1]
return <root> {data($userName)} </root> 
于 2013-12-31T11:17:23.870 に答える