sql server 2005 链接oracle9i 获取数据 字符串拼接到同一行
 select * from openquery (orcl,
'SELECT * FROM(
    SELECT DISTINCT 住院号
    FROM medrec.v_bas_error
)A
OUTER APPLY(
    SELECT
        [病案问题]= STUFF(REPLACE(REPLACE(
            (
                SELECT 病案问题 
                FROM medrec.v_bas_error N
                WHERE N.住院号 = A.住院号
                FOR XML AUTO
            ), ''< N 病案问题="'', '',''), ''"/>'''', ''''), 1, 1, '''')

) N 
where 完善人 IS NULL') 

**结果发生如下错误:
**
链接服务器"orcl"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "ORA-00933: SQL command not properly ended
"。
这是怎么回事?麻烦各位大侠帮忙看看,谢谢!

我想要的结果是:
住院号 病案问题
1 张三;李四
2 李一;李二

sql

1个回答

ORACLE 9i不支持OUTER APPLY的吧?
参考Using XMLAGG in 9i to merge rows
试一下下面的语句

SELECT N.住院号
    , RTRIM(XMLAGG(XMLELEMENT(e, 病案问题  || ',')).EXTRACT('//text()').EXTRACT('//text()') ,',') 病案问题 
FROM medrec.v_bas_error N
GROUP BY N.住院号

其他的可以搜索一下这些看看哪些支持Oracle 9i的。
SYS_CONNECT_BY_PATH
WM_CONCAT
LISTAGG
STRAGG

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问