我有一长串用户名。我正在尝试使用 Visual Studio c# 和本地数据库获取以 A、B、C、D 开头的前 10 个用户名。
SELECT tmpA.UserName, tmpB.UserName ...
FROM (
SELECT top 10 [UserName]
FROM [Users]
WHERE UserName LIKE 'A%'
) tmpA,
(
SELECT top 10 [UserName]
FROM [Users]
WHERE UserName LIKE 'B%'
) tmpB
我正在尝试获得如下所示的结果:
a | b | c ...
aa | bb | cc ....
aaa | bbb | ccc ...
其中第一列包含以“A”开头的前 10 个用户名,第二列包含以“B”等开头的前 10 个用户名。
希望你们中的一个人可以帮助我。预先感谢您
最佳答案
在 SQL Server 中,您可以使用窗口函数和pivot
或条件聚合来执行此操作:
select max(case when left(name, 1) = 'a' then name end) as name_a,
max(case when left(name, 1) = 'b' then name end) as name_b,
. . .
max(case when left(name, 1) = 'z' then name end) as name_z
from (select t.*,
row_number() over (partition by left(name, 1) order by name) as seqnum
from table t
) t
where seqnum <= 10
group by seqnum
关于mysql - SQL - 获取以字母开头的前 10 个用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142894/