相关疑难解决方法(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中分页结果的最佳方法是什么

如果您还想获得结果总数(在分页之前),那么在SQL Server 2000,2005,2008,2012中分页结果的最佳方法(性能明智)是什么?

sql sql-server performance pagination

441
推荐指数
7
解决办法
40万
查看次数

在Microsoft SQL Server 2005中模拟group_concat MySQL函数?

我正在尝试将基于MySQL的应用程序迁移到Microsoft SQL Server 2005(不是选择,而是生活).

在原始应用程序中,我们几乎完全使用符合ANSI-SQL的语句,但有一个重要的例外 - 我们group_concat经常使用MySQL的函数.

group_concat顺便说一下,这样做:给出一张表,比如说,员工姓名和项目......

SELECT empName, projID FROM project_members;
Run Code Online (Sandbox Code Playgroud)

收益:

ANDY   |  A100
ANDY   |  B391
ANDY   |  X010
TOM    |  A100
TOM    |  A510
Run Code Online (Sandbox Code Playgroud)

...这是你用group_concat得到的:

SELECT 
    empName, group_concat(projID SEPARATOR ' / ') 
FROM 
    project_members 
GROUP BY 
    empName;
Run Code Online (Sandbox Code Playgroud)

收益:

ANDY   |  A100 / B391 / X010
TOM    |  A100 / A510
Run Code Online (Sandbox Code Playgroud)

所以我想知道的是:是否有可能在SQL Server中编写用户定义的函数来模拟其功能group_concat

我几乎没有使用UDF,存储过程或类似的东西的经验,只是直接的SQL,所以请错误地说太多的解释:)

sql sql-server sql-server-2005 string-aggregation

342
推荐指数
9
解决办法
17万
查看次数

T-SQL是否具有连接字符串的聚合函数?

可能重复:
SQL Server 2000中的内嵌类型函数?
连接行值T-SQL

我有一个我正在查询的视图,看起来像这样:

BuildingName    PollNumber
------------    ----------
Foo Centre      12        
Foo Centre      13
Foo Centre      14
Bar Hall        15
Bar Hall        16
Baz School      17
Run Code Online (Sandbox Code Playgroud)

我需要编写一个将BuildingNames组合在一起的查询,并显示一个PollNumbers列表,如下所示:

BuildingName    PollNumbers
------------    -----------
Foo Centre      12, 13, 14
Bar Hall        15, 16
Baz School      17
Run Code Online (Sandbox Code Playgroud)

我怎么能在T-SQL中做到这一点?我宁愿不为此写一个存储过程,因为它看起来有点矫枉过正,但我​​不是一个数据库人.看起来像SUM()或AVG()这样的聚合函数是我需要的,但我不知道T-SQL是否有一个.我正在使用SQL Server 2005.

t-sql sql-server group-by sql-server-2005 aggregate-functions

76
推荐指数
2
解决办法
8万
查看次数

如何连接每个组的特定列的所有字符串

假设我有这个表[表1]

Name    Mark
------- ------
ABC     10
DEF     10
GHI     10
JKL     20
MNO     20
PQR     30
Run Code Online (Sandbox Code Playgroud)

我的SQL语句应该是什么来检索看起来像这样的记录:( group by [mark]).我已经完成了1和2列,但不知道如何完成第3列(使用相同的[mark]连接[name])

mark count     names
---- -----     -----------
10       3     ABC,DEF,GHI
20       2     JKL,MNO
30       1     PQR
Run Code Online (Sandbox Code Playgroud)

我正在使用Microsoft SQL.请帮忙.谢谢

sql t-sql sql-server xquery sql-server-group-concat

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

SQL Server - 将行连接到逗号分隔列表中

假设我有一个临时表,如下所示:

+----+------+
| Id | Value|
+----+------+    
| 1  |   1  |
| 1  |   2  |
| 1  |   3  |
| 2  |   1  |
| 2  |   2  |
+----+------+
Run Code Online (Sandbox Code Playgroud)

我希望我的桌子像这样:

    +----+----------+
    | Id | ValueList|
    +----+----------+    
    | 1  |   1,2,3  |
    | 2  |   1,2    | 
    +----+----------+
Run Code Online (Sandbox Code Playgroud)

所以基本上我需要将我的值分组为逗号分隔列表.我已经尝试过以下方法:

SELECT Id, STUFF((SELECT ',' + CAST(VALUE AS varchar) FROM @MyTable FOR XML PATH('')), 1 ,1, '') AS ValueList
FROM @MyTable
GROUP BY Id
Run Code Online (Sandbox Code Playgroud)

但我得到的结论是:

        +----+---------------------+
        | Id | …
Run Code Online (Sandbox Code Playgroud)

sql-server csv select

15
推荐指数
3
解决办法
9621
查看次数

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
查看次数

SQL Server中的Concat组

如果我有这样的表格:

+------------+
| Id | Value |
+------------+
| 1  | 'A'   |
|------------|
| 1  | 'B'   |
|------------|
| 2  | 'C'   |
+------------+
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这样的结果集:

+------------+
| Id | Value |
+------------+
| 1  | 'AB'  |
|------------|
| 2  | 'C'   |
+------------+
Run Code Online (Sandbox Code Playgroud)

我知道使用GROUP_CONCAT在MySQL中很容易做到,但我需要能够在MSSQL 2005中做到这一点

谢谢

(重复如何使用GROUP BY来连接SQL Server中的字符串?)

sql sql-server group-by string-concatenation

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

如何基于关系获得针对一条记录的多条记录?

我有两个表组织和员工有一对多的关系,即一个组织可以有多个员工.现在,我想选择特定组织的所有信息以及该组织的所有员工的名字.最好的方法是什么?我可以在单个记录集中获得所有这些,或者我必须基于否获得多行.员工?这是我想要的一点图形演示:

Org_ID      Org_Address    Org_OtherDetails    Employess

1           132A B Road    List of details     Emp1, Emp2, Emp3.....
Run Code Online (Sandbox Code Playgroud)

mysql sql database

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

如何在sql中连接多个具有相同id的行?

我的表包含两个字段的详细信息:

ID      DisplayName
1        Editor
1        Reviewer
7        EIC
7        Editor
7        Reviewer
7        Editor
19       EIC
19       Editor
19       Reviewer
Run Code Online (Sandbox Code Playgroud)

我想用DisplayName获取独特的细节

1 Editor,Reviewer 7 EIC,Editor,Reviewer

不要使用ID 7获取重复值

如何组合DisplayName详细信息?如何编写查询?

sql sql-server

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