如何合并一列的所有条目[SQL]

问题描述

如标题所示,使用以下SQL查询:

SELECT "Name"
FROM "ExampleTable"

我得到以下结果:

Name
----------------
ExampleName1
ExampleName2
ExampleName3

问题::如何修改查询,以便将所有名称都显示在一行中,以便以后可以使用它们使用数组。

我尝试过的操作FOR XMLSTUFF-不起作用

预期结果:

Name: ExampleName1,ExampleName2,ExampleName3.

解决方法

如果您使用的是SQL Server,则可以尝试以下操作:

Select SUBSTRING( 
( 
     SELECT ',' + Name AS 'data()'
         FROM TableName FOR XML PATH('') 
),2,1000) As Names

在Fiddle上进行检查:http://sqlfiddle.com/#!18/6ab0b3/6

或者使用COALESCE可能是一种简单的方法,该方法根据传递的参数将单行中的多行合并为逗号分隔的值:

Declare @val Varchar(MAX); 
Select @val = COALESCE(@val + ',' + Name,Name) 
        From TableName Select @val;

select @val; // this will show all your data

在提琴上检查此:http://sqlfiddle.com/#!18/36112/2

此外,如果您对上述屏幕截图有疑问,请提供屏幕截图,以便于您轻松理解这些步骤。

请注意::在上述过程中,我既没有获取任何PRIMARY KEY,也没有设置其自动增量,但是在接下来的说明中,我将PRIMARY KEY写入了所有内容, SSMS(Sql Server Management Studio)

这是示例tblStudent表的架构,该表具有PRIMARY KEY和自动增量设置,如下所示:

enter image description here

接下来在其中输入一些虚拟值

enter image description here

最终编写我们的查询。

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...