with a as ( select *,ROW_NUMBER( ) Over(Order by 国家) RN from 水果表 ), b as ( select *,ROW_NUMBER( ) Over(Order by 国家) RN2 from a Where RN%2=1 ), c as ( select *,ROW_NUMBER( ) Over(Order by 国家) RN2 from a Where RN%2=0 ) select * from c LEFT JOIN b ON b.RN2=C.RN2
/* create table ta(id int identity(1,1),国家 nvarchar(10), 水果 nvarchar(10)) insert into ta select '中国','香蕉' union all select '美国','莲雾' union all select '日本','桔子' union all select '中国','桔子' union all select '美国','梨' union all select '日本','西瓜' union all select '中国','哈密瓜' */select a.国家,a.水果,b.国家,b.水果 from (select id,国家,水果 from ta where id%2=1)a left join (select id,国家,水果 from ta where id%2=0)b on a.id+1=b.id /* 中国 香蕉 美国 莲雾 日本 桔子 中国 桔子 美国 梨 日本 西瓜 中国 哈密瓜 NULL NULL*/
from temptb
with a
as
(
select *,ROW_NUMBER( ) Over(Order by 国家) RN from 水果表
),
b as
(
select *,ROW_NUMBER( ) Over(Order by 国家) RN2 from a Where RN%2=1
),
c as
(
select *,ROW_NUMBER( ) Over(Order by 国家) RN2 from a Where RN%2=0
)
select * from c
LEFT JOIN b ON b.RN2=C.RN2
create table ta(id int identity(1,1),国家 nvarchar(10), 水果 nvarchar(10))
insert into ta
select '中国','香蕉' union all
select '美国','莲雾' union all
select '日本','桔子' union all
select '中国','桔子' union all
select '美国','梨' union all
select '日本','西瓜' union all
select '中国','哈密瓜' */select a.国家,a.水果,b.国家,b.水果 from
(select id,国家,水果 from ta where id%2=1)a
left join
(select id,国家,水果 from ta where id%2=0)b
on a.id+1=b.id
/*
中国 香蕉 美国 莲雾
日本 桔子 中国 桔子
美国 梨 日本 西瓜
中国 哈密瓜 NULL NULL*/