首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Postgresql中来自SQL Server的‘'stuff’和'for xml path('')‘

Postgresql中来自SQL Server的‘'stuff’和'for xml path('')‘
EN

Stack Overflow用户
提问于 2013-01-02 17:24:40
回答 1查看 21.9K关注 0票数 7

我正在将一些SQL Server 2008R2查询迁移到PostgreSQL9.0,但遇到了一些问题。下面是SQL Server查询:

代码语言:javascript
复制
stuff((select ', '+p.[NAME] as 'data()' 
from BPROVIDERS_PROVIDER p, BORDER_ARTICLEORDERPROVIDER aop 
where p.OID = aop.PROVIDER for xml path('')),1,1,'')) as pNAMES

阅读SQL Server文档时,我了解到这会创建一个逗号分隔的列表。我想我可以在Postresql中把stuff函数改成overlay函数。我说的对吗?

第二个问题是使用('')作为参数的SQL Server的for xml path。它返回分配给名为pNAMES的属性的值,而不是创建行元素。对吗?

带有tableforest = 'true'属性的Postgresql Query_to_xml()函数也有同样的功能吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-04-22 19:07:21

填充((SELECT DISTINCT ',‘+ CONVERT(VARCHAR,L.ROLE_SUB_CAT_ID) FROM PHS.dbo.PHS_ADMIN_USER_ACCESS_DTL K,PHS.dbo.PHS_ADMIN_USER_ROLE_SUB_CAT_MST L WHERE L.ROLE_SUB_CAT_ID = K.ROLE_SUB_CAT_ID和K.UMC_ID = A.UMC_ID K.CCR_ID = A.CCR_ID FOR XML PATH( '') ),1,1,’‘)作为ROLE_SUB_CAT_ID

将其转换为postgresql,如下所示:

string_agg((SELECT distinct ',‘|| cast(L.ROLE_SUB_CAT_ID as VARCHAR) FROM PHS.dbo.PHS_ADMIN_USER_ACCESS_DTL K,PHS.dbo.PHS_ADMIN_USER_ROLE_SUB_CAT_MST L WHERE L.ROLE_SUB_CAT_ID = K.ROLE_SUB_CAT_ID PHS.dbo.PHS_ADMIN_USER_ROLE_SUB_CAT_MST K.UMC_ID = A.UMC_ID和K.CCR_ID=A.CCR_ID ),1,1,'')作为ROLE_SUB_CAT_ID

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14119517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档