Sql 如何使用不同的唯一键存储输出(已尝试交叉应用字符串\u拆分)?
我试图理解如何转换sql tbl中当前存储的内容。LBid是唯一的ID,productString列包含每个LBid中存在的所有产品ID。我需要编写一条语句,将每个单独的产品ID(存储在productString中)存储为唯一ID,并以CSV格式存储所有关联的LBID 电流输出Sql 如何使用不同的唯一键存储输出(已尝试交叉应用字符串\u拆分)?,sql,sql-server,split,azure-sql-database,Sql,Sql Server,Split,Azure Sql Database,我试图理解如何转换sql tbl中当前存储的内容。LBid是唯一的ID,productString列包含每个LBid中存在的所有产品ID。我需要编写一条语句,将每个单独的产品ID(存储在productString中)存储为唯一ID,并以CSV格式存储所有关联的LBID 电流输出 LBid title noProducts productString 51631 Slide2 NULL NULL 51636 Slide3 1 49518 5
LBid title noProducts productString
51631 Slide2 NULL NULL
51636 Slide3 1 49518
51638 Slide4 1 49512
51641 Slide5 2 49512,49518
51643 Slide6 4 49512,46163,49518,46157
51645 Slide7 3 49874,47339,46165
51647 Slide8 5 49874,48807,49934,46766,47339
51649 Slide9 7 46165,48807,49874,47339,46766,47648,47948
期望输出
Product ID LBid
49518 51636,51641,51643
49512 51638,51641,51643
etc...
我已经尝试使用下面的代码来帮助我拆分productString列,但是我不知道如何保存这个SELECT语句集的输出
SELECT value, LBid, title, noProducts, productString
FROM dbo.LB
CROSS APPLY STRING_SPLIT(productString, ',')
GROUP BY value, LBid, title, noProducts, productString
ORDER BY value;
上述语句的输出(这是一个示例,可能不会直接反映上述代码)
任何帮助都将不胜感激
谢谢
sqlazure/SMSS
我需要编写一条语句,将每个单独的产品ID(存储在productString中)存储为唯一ID,并以CSV格式存储所有关联的LBID
您需要汇总:
SELECT lb.LBid, STRING_AGG(s.value, ',')
FROM dbo.LB CROSS APPLY
STRING_SPLIT(lb.productString, ',') s
GROUP BY lb.LBid
ORDER BY lb.LBid;
我有点困惑。您是否需要表中的信息以及所需的输出?喜欢这张图片吗?我希望得到所需输出的输出(如果可能的话),谢谢你的建议,但我不确定我是否完全理解你的聚合代码与我的不同?它产生相同的输出?也许我在第一个请求中不清楚,我正在尝试按lb.productString值分组(例如,单个productString 45891、47205等),这有意义吗?@Pythonn00b。查看整个查询,尤其是
分组依据
。
SELECT lb.LBid, STRING_AGG(s.value, ',')
FROM dbo.LB CROSS APPLY
STRING_SPLIT(lb.productString, ',') s
GROUP BY lb.LBid
ORDER BY lb.LBid;