Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用不同的唯一键存储输出(已尝试交叉应用字符串\u拆分)?_Sql_Sql Server_Split_Azure Sql Database - Fatal编程技术网

Sql 如何使用不同的唯一键存储输出(已尝试交叉应用字符串\u拆分)?

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

我试图理解如何转换sql tbl中当前存储的内容。LBid是唯一的ID,productString列包含每个LBid中存在的所有产品ID。我需要编写一条语句,将每个单独的产品ID(存储在productString中)存储为唯一ID,并以CSV格式存储所有关联的LBID

电流输出

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;