Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 从一个表中选择一个子表,然后选择concat行作为结果_Sql - Fatal编程技术网

Sql 从一个表中选择一个子表,然后选择concat行作为结果

Sql 从一个表中选择一个子表,然后选择concat行作为结果,sql,Sql,我正在从两个表的查询中查找此结果。希望将第二个表中的结果合并为一列。(TXM,TRD)。我的大脑忘记了如何在MS Sql中执行此操作: **FirstName LastName Training** Tom Smith TXM, TRD **Table 1** Id FirstName LastName 1 Tom Smith **Table 2** UserId Training 1 TXM 1 TRD 提前感谢您的

我正在从两个表的查询中查找此结果。希望将第二个表中的结果合并为一列。(TXM,TRD)。我的大脑忘记了如何在MS Sql中执行此操作:

**FirstName LastName Training**
  Tom       Smith    TXM, TRD


**Table 1**
Id FirstName LastName
1  Tom        Smith

**Table 2**
UserId   Training
1        TXM
1        TRD

提前感谢您的帮助。

您正在寻找
STUFF-for-XML路径(“”)
技巧:

SELECT FirstName, LastName,
    STUFF((SELECT ', ' + Training 
           FROM [Table 2] t2 
           WHERE t2.UserId = t1.Id 
           FOR XML PATH('')), 1, 2, '') AS Training
FROM [Table 1] t1
从结果集中创建一个连接字符串,并将前两个字符替换为零,从而删除多余的逗号和空格


别忘了子查询必须用一对括号括起来。

但是你的解剖结构的其他部分还记得吗!?!?不管怎么说,它叫JOINWorks,就像一个符咒,谢谢。不会想到会有一个STUFF函数。