我正在使用XQuery查询OSB项目中的数据库。考虑一下 下表:
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>
。但是我
只需要返回一行,即使查询返回多行也是如此
关注<root>Dheepan</root>
。我在查询中使用了谓词[1]
但是
不知道为什么它连接值并返回。任何人都可以告诉我如何
返回多行时仅返回第一行。
答案 0 :(得分:3)
你需要使用适当的paranthesis:
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>