gpt4 book ai didi

sql - 将行/记录中的多个数据合并到带有逗号分隔字段的一行中

转载 作者:行者123 更新时间:2023-12-03 00:50:02 26 4
gpt4 key购买 nike

如果我要查询 ORDERS 表,我可能会输入以下内容:

 SELECT * FROM ORDERS
WHERE ITEM_NAME = 'Fancy Pants'

在此查询的结果中,我可能会得到以下内容:

 ----------------------------------------------------------------------
ORDER_ID WAIST First_Name Email
----------------------------------------------------------------------
001 32 Jason j-diddy[at]some-thing.com
005 28 Pip pirrip[at]british-mail.com
007 28 HAL9000 olhal[at]hot-mail.com

现在,我还想从另一个表中提取信息:

从产品中选择 *WHERE ITEM_NAME = '花哨的裤子'

 ------------------------------------------
PRODUCT_ID Product Prod_Desc
------------------------------------------
008 Fancy Pants Really fancy.

然而,最后,我实际上想通过 SQL 查询将这些记录压缩为一行:

 -----------------------------------------------------------------------------
PRODUCT ORDER_Merged First_Name_Merged Email_Merged
-----------------------------------------------------------------------------
Fancy Pants 001,005,007 Jason,Pip,Hal9000 j-di[...].com, pirrip[...].com

无论如何,事情就是这样的。我无法弄清楚“合并”查询会是什么样子。

不幸的是,我在这里的搜索一直引导我找到 PHP 的结果。我发现了几个结果:merging into CSV rows via SQL但我认为它们不会在我的场景中起作用。

一如既往,我们将不胜感激任何见解。

更新:

啊,原来 STUFFFOR XML 函数是 exactly what I needed 。谢谢大家!!

 Select
A.name,
stuff((
select ',' + B.address
from Addresses B
WHERE A.id=B.name_id
for xml path('')),1,1,'')
From Names A

最佳答案

这是一篇关于各种组串联方法的优秀文章,并介绍了每种方法的优缺点。

http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

但是就我个人而言,我喜欢这里演示的合并方法:

https://dba.stackexchange.com/a/2615/1607

关于sql - 将行/记录中的多个数据合并到带有逗号分隔字段的一行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8244135/

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