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 李一;李二
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