gpt4 book ai didi

c# - SQL 服务器 : concat or multiple SELECT queries in gridview?

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:23 24 4
gpt4 key购买 nike

我在 SQL Server 数据库中有一个信息表和另一个组信息表,我想将它们连接到第一个表中。

例如

表 1:

1 | 'foo' | 'bar,baz'

表 2:

1 | 'bar'
1 | 'baz'

我想通过对 table2 执行 GROUP BY CONCAT 来替换 table1 中第三列的需要。唯一的问题是在我完成这个项目的开发后,我意识到我需要将 SQL 移植到 Oracle,所以也许对 gridview 的一列进行单独的 SELECT 是更好的选择?

非常感谢。

最佳答案

简单的 MS SQL concat 可以通过将您需要的行转换为 XML 并返回到 nvarchar 来完成。例子:假设您有 2 个表 - 一个用于联系人(具有 PK ID),第二个用于 ContactTypes(具有 ContactID 作为 FK,1 个联系人可以有多个行)。您需要将所有类型连接到 1 行。这是执行此操作的技巧:

SELECT c.ContactID, CONVERT(VARCHAR(MAX), /* concatenate all Types to varchar */
(
SELECT ct.ContactTypeDescription+ ', '
FROM ContactTypes ct
JOIN Contacts c1 ON ct.ContactID = c1.ContactID
FOR XML PATH('')
)) AS ContactTypes, *
FROM Contacts c

这应该使输出像这样:

1 | Type1, Type2,  ... | ...2 | Type3, Type10, ... | ...

等等

不知道 Oracle 端口,希望这对您有所帮助...

关于c# - SQL 服务器 : concat or multiple SELECT queries in gridview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com