Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oraclesql查询到xml_Xml_Oracle - Fatal编程技术网

oraclesql查询到xml

oraclesql查询到xml,xml,oracle,Xml,Oracle,我有以下问题 SELECT DISTINCT P.PLAYERID, P.FIRSTNAME, P.LASTNAME, P.POSITION,PT.POINTS, PT.MINUTES, CALC_TENDEX(P.PLAYERID, PT.TEAMID, 2009) TENDEX, T.DIVISION, PT.TEAMID, T.TEAMNAME FROM PLAYERS P JOIN PLAYERS_TEAMS PT ON P.PLAYERID = PT.PLAYERID JOIN TEA

我有以下问题

SELECT DISTINCT P.PLAYERID, P.FIRSTNAME, P.LASTNAME, P.POSITION,PT.POINTS, PT.MINUTES, CALC_TENDEX(P.PLAYERID, PT.TEAMID, 2009) TENDEX, T.DIVISION, PT.TEAMID, T.TEAMNAME
FROM PLAYERS P
JOIN PLAYERS_TEAMS PT ON P.PLAYERID = PT.PLAYERID
JOIN TEAMS T ON PT.TEAMID=T.TEAMID
WHERE PT.YEAR=2009 AND T.DIVISION='East'
ORDER BY TENDEX DESC
FETCH FIRST 12 ROWS ONLY;
我想将此查询输出为xml,自定义格式如下:

<nba dataset="topplayers">
    <division ID="East">
        <player></player>
                .
                .
                .
        <player></player>
</nba>
我尝试过使用SQL/XML,但无论我尝试什么,都不会返回我想要的答案。是否有一些简单的方法可以直接将其转换为xml

EDIT:SQL/XML我已经尝试过了,并对其进行了各种修改

SELECT DISTINCT XMLELEMENT("nba",
         XMLAGG (
           XMLELEMENT("division",
             XMLATTRIBUTES(T.DIVISION AS "ID"),
               (SELECT DISTINCT XMLAGG(
               XMLELEMENT("player",
                 XMLFOREST(
                   P.PLAYERID AS "playerid",
                   P.FIRSTNAME AS "firstname",
                   P.LASTNAME AS "lastname",
                   P.POSITION AS "position",
                   PT.POINTS AS "points",
                   PT.MINUTES AS "minutes",
                   CALC_TENDEX(PT.PLAYERID, PT.TEAMID, 2009) AS "tindex",
                   T.DIVISION AS "division",
                   PT.TEAMID AS "teamid",
                   T.TEAMNAME AS "teamname"
                  )
                )
              )
              FROM PLAYERS P
              JOIN PLAYERS_TEAMS PT ON P.PLAYERID = PT.PLAYERID
              JOIN TEAMS T ON PT.TEAMID=T.TEAMID
              WHERE PT.YEAR=2009 AND T.DIVISION='East' AND ROWNUM < 12
            )
          )
        )
       ) AS "nba"
FROM TEAMS T
WHERE T.DIVISION = 'East';
编辑2:当前查询返回:

<nba>
    <division ID="East">
        <player>
            <playerid>belinma01</playerid>
            <firstname>Marco</firstname>
            <lastname>Belinelli</lastname>
            <position>G</position>
            <points>469</points>
            <minutes>1121</minutes>
            <tindex>,25245316681534344335414808206958073149</tindex>
            <division>East</division>
            <teamid>TOR</teamid>
            <teamname>Toronto Raptors</teamname>
        </player>
        <!-- The same player 11 more times -->
    </division>
</nba>
我想回报的是:

<nba>
    <division ID="East">
        <player>
            <playerid></playerid>
            <firstname></firstname>
            <lastname></lastname>
            <position></position>
            <points></points>
            <minutes></minutes>
            <tindex></tindex>
            <division></division>
            <teamid></teamid>
            <teamname></teamname>
        </player>
        <!-- Top 12 in the East division -->
    </division>
    <division id="West>
        <!-- Top 12 in the west division -->
    </division>
</nba>
我希望这有帮助

您正在为团队重新定义子查询中的T。 而不是

JOIN PLAYERS_TEAMS PT ON P.PLAYERID = PT.PLAYERID
JOIN TEAMS T ON PT.TEAMID=T.TEAMID
WHERE PT.YEAR=2009 AND T.DIVISION='East'
您需要将子查询与上的外部/顶级查询关联起来 必须参加T的小组:

JOIN PLAYERS_TEAMS PT ON P.PLAYERID = PT.PLAYERID
WHERE PT.YEAR=2009 AND T.DIVISION='East' AND PT.TEAMID = T.TEAMID
像那样使用ROWNUM是行不通的;改用A来获得前12名

您可能不需要在这里进行区分


向我们展示您的SQL/XML查询tried@imhotap编辑问题以添加它。你说它…不返回我想要的答案。它是否返回不正确的数据、无数据、格式不正确的数据或其他信息?一些关于输入数据的外观、您期望查询返回的内容以及您得到的内容的示例会有所帮助。“谢谢,”博比贾维斯·埃迪特再次说道。不幸的是,我已经试过了。结果保持不变。