相关疑难解决方法(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万
查看次数

Stuff和'For Xml Path'在Sql Server中是如何工作的

表是:

+----+------+
| Id | Name |
+----+------+    
| 1  | aaa  |
| 1  | bbb  |
| 1  | ccc  |
| 1  | ddd  |
| 1  | eee  |
+----+------+
Run Code Online (Sandbox Code Playgroud)

所需输出:

+----+---------------------+
| Id |        abc          |
+----+---------------------+ 
|  1 | aaa,bbb,ccc,ddd,eee |
+----+---------------------+
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT ID, 
    abc = STUFF(
                 (SELECT ',' + name FROM temp1 FOR XML PATH ('')), 1, 1, ''
               ) 
FROM temp1 GROUP BY id
Run Code Online (Sandbox Code Playgroud)

此查询正常运行.但我只需要解释它是如何工作的,或者是否有其他或简短的方法来做到这一点.

我很难理解这一点.

sql database sql-server

320
推荐指数
5
解决办法
45万
查看次数

我什么时候应该在SQL Server中使用分号?

在检查Web上的一些代码和SQL Server Management Studio生成的脚本时,我注意到某些语句以分号结束.

那么什么时候应该使用它?

t-sql sql-server

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

sql server子查询用逗号分隔的结果集

我需要在表上返回记录,我的结果集需要包含逗号分隔列表.

我附上了3张桌子的图片.我需要做一个select,它返回第一个表中的记录,并包含屏幕截图中第3个表中存在的最后一个AwardFocusName.

所以我的结果集将返回一条记录,并在其中包含AwardFocusNames列表(以逗号分隔).

在此输入图像描述

sql sql-server join subquery

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

SQL:将字符串聚合在一起

在我的SQL Server 2005数据库中,使用SLQ查询,是否有人知道将记录组合​​在一起的最佳方法,并从另一个字段获取逗号分隔的值列表?
所以,如果我有:

UserID        Code
  1            A
  1            C5
  1            X
  2            V3
  3            B
  3            D
  3            NULL
  3            F4
  4            NULL
Run Code Online (Sandbox Code Playgroud)

我得到:

 UserID        Code
  1            A,C5,X
  2            V3
  3            B,D,F4
  4            NULL
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

sql sql-server-2005

14
推荐指数
1
解决办法
5456
查看次数

在STRING_AGG中产生DISTINCT值

我在SQL Server 2017中使用STRING_AGG函数。我想创建与相同的效果COUNT(DISTINCT <column>)。我试过了,STRING_AGG(DISTINCT <column>,',')但这不是合法的语法。

我想知道是否有T-SQL解决方法。这是我的样本:

WITH Sitings 
  AS
  (
    SELECT * FROM (VALUES 
      (1, 'Florida', 'Orlando', 'bird'),
      (2, 'Florida', 'Orlando', 'dog'),
      (3, 'Arizona', 'Phoenix', 'bird'),
      (4, 'Arizona', 'Phoenix', 'dog'),
      (5, 'Arizona', 'Phoenix', 'bird'),
      (6, 'Arizona', 'Phoenix', 'bird'),
      (7, 'Arizona', 'Phoenix', 'bird'),
      (8, 'Arizona', 'Flagstaff', 'dog')
    ) F (ID, State, City, Siting)
  ) 
SELECT State, City, COUNT(DISTINCT Siting) [# Of Types], STRING_AGG(Siting,',') Animals
FROM Sitings 
GROUP BY State, City
Run Code Online (Sandbox Code Playgroud)

上面产生了以下结果:

+---------+-----------+--------------+-------------------------+
|  State  |   City    | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server distinct string-aggregation sql-server-2017

9
推荐指数
4
解决办法
7455
查看次数

选择返回按ID分组的逗号分隔列表

我有以下表格:

EntryTag
---------
EntryID
TagID
Run Code Online (Sandbox Code Playgroud)

putput示例(EntryID,TagID):

1 2
1 4
1 5
2 3
2 4
2 5
etc...
Run Code Online (Sandbox Code Playgroud)

Tags
----
TagID
Name
Run Code Online (Sandbox Code Playgroud)

示例输出:

1 peas
2 corn
3 carrots
...etc.
Run Code Online (Sandbox Code Playgroud)

我希望每个条目带回标签列表,但作为标记以逗号分隔的一行.

例如,我想看到这个:

EntryID     TagsCommaDelimited
-------     ------------------
1           corn, peas, carrots
2           barley, oats
...and so on 
Run Code Online (Sandbox Code Playgroud)

所以我需要列出每个EntryID及其对应的标记逗号分隔列表.

我选择的内容表如下所示:

Content
--------
ID   -(which is in essence the EntryID, they didn't make it consistent)
Description
..etc.
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的,但我的语法没有运气:

declare @tagsCommaDelimited varchar (200) 
set @tagsCommaDelimited = '';


With AllEntryTags_CTE(Name, EntryID )
as …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

4
推荐指数
1
解决办法
6815
查看次数

如何使用表列中的 SELECT 语句创建逗号分隔列表

提前致谢。

我有一个像这样的值的表

class_id Instructor_Name

———————————

1 Joe 

2 Joe 

3 Joe 

1 Judy 

2 Judy 

2 Kevin 

3 Kevin 
Run Code Online (Sandbox Code Playgroud)

我想要这样的结果集使用 SQL 语句:

id name services (I want)

———————————–

1 Joe, Judy

2 Joe, Judy, KevinC

3 Joe, Kevin
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个

谢谢,布里杰什

sql sql-server

-1
推荐指数
1
解决办法
8839
查看次数