问题描述
- 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 李一;李二
解决方案
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
时间: 2024-08-02 10:18:21