相关疑难解决方法(0)

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中

我有以下代码,它将为我的结果创建一个逗号分隔列表:

DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+', ' ,'') + INSTITUTIONNAME
FROM EDUCATION
WHERE STUDENTNUMBER= '111'
SELECT @listStr
Run Code Online (Sandbox Code Playgroud)

问题在于它创建了一个大量逗号分隔的行.我需要它每行返回一个逗号分隔的列表.

所以,如果Simon已经成为2个机构的一部分,那么我希望:

"INSTITUTION1, INSTITUTION2"
Run Code Online (Sandbox Code Playgroud)

由于我没有提供where子句,我希望我的结果对于数据库中的每一行都显示如下.

t-sql sql-server sql-server-2008

36
推荐指数
3
解决办法
11万
查看次数

标签 统计

sql-server ×2

database ×1

sql ×1

sql-server-2008 ×1

t-sql ×1