繁体   English   中英

我的SQL查询以独立查找排序两列

[英]my sql query to find sort two columns independently

有一个表有两列,说id和name,我希望这两列都被排序。

table :
id name
3 y
2 z
1 x

output should be
id name
1 x
2 y
3 z

任何人都可以在单个sql查询中完成吗?

您需要做一些奇怪的事情。 因为你想做的很奇怪。

select b1.id, b2.name from
(
  select @row := @row +1 as row, id
    from broken, (select @row := 0) rr
  order by id asc
) b1
inner join
(
  select @row2 := @row2 + 1 as row, name
    from broken, (select @row2 := 0) rr
  order by name asc
) b2
on b1.row = b2.row

演示小提琴: http ://sqlfiddle.com/#!9/ 4d47c/7

Select *
, row_number() over (order by ID) as IDRow
, row_number() over (order by name) as NameRow
into #temp
from table

select a.ID, b.Name from #temp a
full outer join #temp b
on a.IDRow = b.NameRow
order by IDRow, NameRow

如果需要,可以使用子查询代替temp表来执行此操作,但是这样可能会更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM