问题描述
如标题所示,使用以下SQL查询:
SELECT "Name"
FROM "ExampleTable"
我得到以下结果:
Name
----------------
ExampleName1
ExampleName2
ExampleName3
问题::如何修改查询,以便将所有名称都显示在一行中,以便以后可以使用它们使用数组。
我尝试过的操作:FOR XML
,STUFF
-不起作用
预期结果:
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和自动增量设置,如下所示:
接下来在其中输入一些虚拟值
最终编写我们的查询。