相关疑难解决方法(0)

如何将多行中的文本连接成SQL Server中的单个文本字符串?

考虑一个包含三个行的名称的数据库表:

Peter
Paul
Mary
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将其转换为单个字符串Peter, Paul, Mary

sql sql-server csv string-concatenation group-concat

1813
推荐指数
33
解决办法
222万
查看次数

如何创建SQL Server函数以将子查询中的多行"连接"到单个分隔字段?

为了说明,假设我有两个表如下:

VehicleID Name
1         Chuck
2         Larry

LocationID VehicleID City
1          1         New York
2          1         Seattle
3          1         Vancouver
4          2         Los Angeles
5          2         Houston
Run Code Online (Sandbox Code Playgroud)

我想写一个查询来返回以下结果:

VehicleID Name    Locations
1         Chuck   New York, Seattle, Vancouver
2         Larry   Los Angeles, Houston
Run Code Online (Sandbox Code Playgroud)

我知道这可以使用服务器端游标完成,即:

DECLARE @VehicleID int
DECLARE @VehicleName varchar(100)
DECLARE @LocationCity varchar(100)
DECLARE @Locations varchar(4000)
DECLARE @Results TABLE
(
  VehicleID int
  Name varchar(100)
  Locations varchar(4000)
)

DECLARE VehiclesCursor CURSOR FOR
SELECT
  [VehicleID]
, [Name]
FROM [Vehicles]

OPEN VehiclesCursor

FETCH NEXT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server string-concatenation

193
推荐指数
8
解决办法
13万
查看次数

如何使用SQL查询创建逗号分隔列表?

我有3个表叫:

  • 应用程序(id,name)
  • 资源(id,name)
  • ApplicationsResources(id,app_id,resource_id)

我想在GUI上显示所有资源名称的表.在每行的一个单元格中,我想列出该资源的所有应用程序(以逗号分隔).

所以问题是,在SQL中执行此操作的最佳方法是什么,因为我需要获取所有资源,而且还需要获取每个资源的所有应用程序?

我是否首先从资源运行select*然后遍历每个资源并对每个资源执行单独的查询以获取该资源的应用程序列表?

有没有办法在一个查询中执行此操作?

sql t-sql sql-server string-aggregation

53
推荐指数
6
解决办法
15万
查看次数

如何在它们之间用逗号制作T-SQL结果列表?

假设我们有一个像这样的简单查询:

SELECT x 
FROM t
WHERE t.y = z
Run Code Online (Sandbox Code Playgroud)

如果我们在结果集中有一条记录,我想将变量@v设置为该值.如果我们有两个或更多记录,我希望结果用逗号和空格分隔.编写此T-SQL代码的最佳方法是什么?

例:

结果集1条记录:

Value1
Run Code Online (Sandbox Code Playgroud)

结果集2条记录:

Value1, Value2
Run Code Online (Sandbox Code Playgroud)

结果集3条记录:

Value1, Value2, Value3
Run Code Online (Sandbox Code Playgroud)

sql t-sql comma sql-server-2008

11
推荐指数
2
解决办法
1万
查看次数

如何在SQL Server 2008中将多行连接成一个字符串?

如何将多行连接成一个字符串?

查询:

SELECT name FROM mytable;
Run Code Online (Sandbox Code Playgroud)

结果:

name
----
kim
lee
park
cho
Run Code Online (Sandbox Code Playgroud)

只是我想要.

name
----
kim,lee,park,cho
Run Code Online (Sandbox Code Playgroud)

不可能?

database sql-server sql-server-2008

10
推荐指数
3
解决办法
9万
查看次数