T-SQL将同一列中的两个项目合并在一起

问题描述

对于一个项目,我有一个用户列表。我的任务是将用户耦合在一起。例如:

Ind   Name
1.    Mary
2.    Jacob
3.    James
4.    Karin

我一直在寻找合并它们的方法,但是大多数google SQL合并问题都是关于合并列而不是特定项目的问题,更不用说两个了。我想要达到的结果是一张新表,其中存储了可能的对,如下所示:

Ind   Couple
1.    Jacob + Mary
2.    James + Jacob
3.    James + Mary
4.    Karin + James
5.    Karin + Jacob
6.    Karin + Mary

在SQL中是否可行?还是我必须使用PHP脚本开发一些变通方法,以便在其中获取数据并使用PHP或Javascript对其进行处理,然后再将其返回到新表中?

在此先感谢任何可以提供帮助的人。 附言有人告诉我服务器使用Microsoft或T-SQL

解决方法

您可以使用自我联接:

select u.name,u2.name
from users u join
     users u2
     on u.ind < u2.ind
,

这听起来像是自联接:

select t1.name name1,t2.name name2
from mytable t1
inner join mytable t2 on t1.name < t2.name

您可以使用字符串串联将两个名称放在同一列中,例如:

select concat(t1.name,' + ',t2.name) as couple
from mytable t1
inner join mytable t2 on t1.name < t2.name

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...