Sql 名称和第一个字符在同一列中相同的对

Sql 名称和第一个字符在同一列中相同的对,sql,sql-server,Sql,Sql Server,我希望SQL查询能够在同一列中显示第一个字符相同的名称 Table: User Column: Names 您可以使用下面的逻辑- Select T1.Names, T1.first_char From (Select Names, substring(Names,1,1) as first_char From USER ) T1 JOIN (Select substring(Names,1,1) as first_char

我希望SQL查询能够在同一列中显示第一个字符相同的名称

Table: User
Column: Names

您可以使用下面的逻辑-

Select T1.Names,
       T1.first_char
From
(Select 
      Names,
      substring(Names,1,1) as first_char
    From USER ) T1
 JOIN
  (Select 
      substring(Names,1,1) as first_char
      From USER
      Group by 
       substring(Names,1,1)
       having count(distinct Names) > 1) T2
  ON T1.first_char = T2.first_char;
编辑:如果要同时显示名称,并且使用的是SQL Server 2017版或更高版本,则可以执行以下操作:-

Select 
       T1.first_char,
       String_Agg(T1.Names,',') within group (order by T1.Names) as Name_list
From
(Select 
      Names,
      substring(Names,1,1) as first_char
    From USER ) T1
 JOIN
  (Select 
      substring(Names,1,1) as first_char
      From USER
      Group by 
       substring(Names,1,1)
       having count(distinct Names) > 1) T2
  ON T1.first_char = T2.first_char
Group by T1.first_char;

交叉联接用户表并排除匹配的主键

SELECT u1.UserID, u1.Names, u2.UserId, u2.Names 
FROM User u1
CROSS JOIN User u2
WHERE LEFT(u1.Names, 1) LIKE LEFT(u2.Names, 1)
AND u1.UserID <> u2.UserID

请显示示例数据、格式化文本中的预期结果以及您的尝试。从[User]中选择名称,其中SUBSTRINGname,1,1=SUBSTRINGname,1,1问题中的任何其他信息。因此,我再说一遍,请添加示例数据,预期结果和您对问题的尝试,即不在注释中。当一个名称找到自己时,表的主键是什么,或者是否可以?你想要两对名字吗?如果您想要对,它们是否应该按顺序排列,也就是说,在名称不相等的每一行中是否会有一行按相反顺序排列?结果必须是不同的吗?这是一个问题,并详细说明了条件。同时添加@DaleK已经请求的。也要解决it中的详细需求。你并不是在通过为OP编写样本数据和预期结果来帮助OP学习如何使用此网站。你无法知道你的提议是否是OP想要的。Dale K-同意你的观点。问题应包含输入和输出样本数据。这就是为什么我在评论部分提到我们应该遵守SO准则。然而,我不同意你的观点——“你无法知道你的提议是OP想要的”。不是每个问题都需要一匙羹才能被理解,有时问题的陈述至少在我的脑海中足够清楚。你可能有不同的看法和观点,因此没有必要就此争论。我认为没有人足够聪明,能够百分之百地正确。没有人总是100%正确或错误的。我不是指你的答案,我是指你建议的对问题的编辑,我已经拒绝了,你不应该实质性地编辑一个问题。因此,当我说你无法知道,你在编辑问题中提出的样本数据和预期结果可能是OP想要的,也可能不是OP想要的——加上它,你不仅在为他们做OP工作,而且你可能完全错了。这就是为什么OP需要学习更新他们的问题。同样,我完全同意你的观点,任何提出问题的人都应该至少拥有这些关于问题输入和输出样本数据集的基本信息。从这个角度来看,我完全同意你拒绝我对这个问题的编辑。如果你的思维过程是-OP应该学会如何在这个论坛上恰当地提出问题,我200%赞同你。