Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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 Server将select查询作为一个select列的一部分_Sql_Sql Server_Sql Server Group Concat - Fatal编程技术网

SQL Server将select查询作为一个select列的一部分

SQL Server将select查询作为一个select列的一部分,sql,sql-server,sql-server-group-concat,Sql,Sql Server,Sql Server Group Concat,嘿,我只是想知道以下是可能的 select id, name, (select name from secondTable where companyId = tableOne.id) as concatenatedString.. from tableOne 因此,我希望select可以为tableOne中的每个记录返回,在另一个表中执行查找并返回该记录id的所有值(另一个表是查找表,因此每个id可能有一个或多个条目)。如果子查询中返回的值超过1,则生成单个字符串值,并以逗号分隔 因此,即返

嘿,我只是想知道以下是可能的

select id, name, (select name from secondTable where companyId = tableOne.id) as concatenatedString..
from tableOne
因此,我希望select可以为tableOne中的每个记录返回,在另一个表中执行查找并返回该记录id的所有值(另一个表是查找表,因此每个id可能有一个或多个条目)。如果子查询中返回的值超过1,则生成单个字符串值,并以逗号分隔

因此,即返回的数据

1  Microsoft Bill,Gate,Jack
2  Apple     Jobs

我不确定您为什么要跳过联接,因为它会使您的查询更加灵活。如果您喜欢使用sub-select,可以通过将sub-select设置为表来实现:

SELECT t1.id, t1.name, t2.name
FROM   tableOne t1
INNER JOIN (select id, name from secondTable) AS t2
on t1.id = t2.id
当然,如果你所做的只是加入ID,那么Abe的回答更有意义


如果您想在select上进行聚合,以防它返回多个列,那么可以使用GROUP BY t1.id、t1.name。

我不确定您为什么要跳过联接,因为它会使查询更加灵活。如果您喜欢使用sub-select,可以通过将sub-select设置为表来实现:

SELECT t1.id, t1.name, t2.name
FROM   tableOne t1
INNER JOIN (select id, name from secondTable) AS t2
on t1.id = t2.id
当然,如果你所做的只是加入ID,那么Abe的回答更有意义


如果要在select上进行聚合,以防它返回多个列,则可以使用GROUP BY t1.id、t1.name。

要使用
进行XML路径构建:

select 
    ID, 
    Name,
    stuff((select ', ' + Name
           from secondTable where companyId = tableOne.id 
           for xml path('')),
          1,2,'') [Names]
from tableOne
STUFF
函数用于删除最后一个将附加在末尾的
,'

您还可以在此处看到其他示例:


您想对XML路径使用
构造:

select 
    ID, 
    Name,
    stuff((select ', ' + Name
           from secondTable where companyId = tableOne.id 
           for xml path('')),
          1,2,'') [Names]
from tableOne
STUFF
函数用于删除最后一个将附加在末尾的
,'

您还可以在此处看到其他示例:

OP希望将“第三列”显示为逗号分隔的值字符串。联接将为每个公司提供多行,只要employeesOP希望将“第三列”显示为逗号分隔的值字符串即可。加入将为每家公司提供多条生产线,数量与员工数量相同