相关疑难解决方法(0)

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

GROUP BY组合/连接一列

我有一张桌子如下:

ID  User  Activity  PageURL  
 1  Me    act1      ab     
 2  Me    act1      cd     
 3  You   act2      xy     
 4  You   act2      st
Run Code Online (Sandbox Code Playgroud)

我希望按用户和活动进行分组,这样我最终得到的结果如下:

User  Activity  PageURL  
Me    act1      ab, cd     
You   act2      xy, st
Run Code Online (Sandbox Code Playgroud)

如您所见,列PageURL由基于group by的逗号分隔在一起.

真的很感激任何指针和建议.

sql sql-server group-by sql-server-2008

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

SQL Server:GROUP BY子句用于获取逗号分隔值

可能重复:
SQL Server中的SQL group_concat函数

我想创建一个查询但不知何故我无法这样做.有人可以帮帮我吗?

原始数据

ID    ReportId     Email
1     1            a@a.com
2     2            b@b.com
3     1            c@c.com
4     3            d@d.com
5     3            e@e.com
Run Code Online (Sandbox Code Playgroud)

我想分组ReportId,但所有电子邮件都应以逗号分隔.所以结果应该是:

ReportId     Email
1            a@a.com, c@c.com
2            b@b.com
3            d@d.com, e@e.com
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

我正在尝试group by子句,但如果还有其他任何事情,那么我也愿意实现它.我非常感谢您的时间和帮助.谢谢.

sql sql-server-2008

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

如何使用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万
查看次数

将列合并到一列SQL Server中

我要做的是将多个列合并为一个.假设我有一个表Player,这个表包含多个列,例如name, team, goalie, left back, right back, center back , left midfield.... and description.

description列将包含name+ team+ left back,因此description也是如此Ronaldo - Madrid - Forward.当玩家只有一个位置但不能超过一个位置时,我可以填充描述栏吗?

我的SQL:

select 
    name, team, goalie,
    leftback, rightback, centerback,
    left midfield,
    ......,
    name + ' - ' + team + ' - '+ 
    CASE 
       WHEN goalie = 'yes' THEN 'Goalie' 
       WHEN leftback = 'yes' THEN 'Left Back'
       WHEN rightback = 'yes' THEN 'Right Back'
       WHEN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server case

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

SQL如何汇总用逗号分隔的查询

我有一个带有作品集的日期列表,一个作品集可以有多个日期.作品集是员工假期请求对开页.(SQL Server 2008)

我没有像列表那样显示信息,而是需要以下面的格式显示它

在此输入图像描述

这是SQL小提琴.

http://sqlfiddle.com/#!3/0ddd2/7

感谢任何指南.

sql sql-server

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