sql - 同一列中名称第一个字符相同的对
问题描述
我正在寻找 SQL Query 以在同一列中显示具有相同第一个字符的名称。
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;
推荐阅读
- java - 滚动到底部 webview 时的功能
- python - 新的聊天消息通知 Django Channels
- android - 导航器抽屉标题图像未在 Firebase 查询中设置
- sql - 计算列上的 SQL 分组依据 - 标识符无效
- python - Python网络服务器说“连接重置”
- windows - 使用批处理脚本将 exe 安装到特定文件夹
- azure-container-service - 限制每个部署或容器的 Log Analytics 日志记录
- python-3.x - 从另一个 defaultdict 获取值并更新原始 dict
- mysql - 将 MySQL Workbench 连接到特定数据库
- java - Spring kafka反序列化中的异常