我用联合选择创建了一个SQL查询,这是将两列合并为一个的查询。
(select top 10 FirstName from Users) union (select top 10 LastName from Users)
结果如下: QUERY RESULT 1
这是并集选择结果1的原始数据。
所以,这是我的问题。 如何选择具有相同列的每个名字和姓氏的数据,但第一个是名字,第二个是姓氏。例如:
Tumbaga Temp - <FirstName>
Villamor - <LastName>
Jun - <FirstName>
Villamor - <LastName>
FN83 - <FirstName>
Lising Geron - <LastName>
So on and so fort.
我是sql查询的新手。感谢您的帮助。
答案 0 :(得分:1)
我们在两个部分上都添加了一个通用的row_number()以对其进行分组,然后按此顺序和名称类型进行排序,以显示在第一对/最后一对的簇中
select 'First' as thename,
Firstname,
row_number() over(order by firstname) rn
from Users
union all
select 'Last',
Lastname,
row_number() over(order by firstname)
from users
order by rn, thename
如果只需要1st 10,则将其包装并添加一个子句
select *
from
(
select 'First' as thename,
Firstname,
row_number() over(order by firstname) rn
from Users
union all
select 'Last',
Lastname,
row_number() over(order by firstname)
from users
)
where rn <=10
order by rn, thename
答案 1 :(得分:0)
无需使用联合,根据您的描述,表中有两个列“ firstName”和“ lastName”,并且您都希望在一个列中。只需尝试以下查询-:
select FirstName+' '+LastName as FullName from Users
SQL Server
答案 2 :(得分:0)
您可以在两个查询中添加一列,以选择您喜欢的数据。
(select top 10 FirstName, 'FirstName' as NameType from SysUser) union (select top 10 LastName, 'LastName' as NameType from SysUser)