我有一张名为mytable的表格,含有这些结果
ID | name
----------
1 | one
2 | two
3 | three
4 | four
5 | five
我需要这个结果
ID | name
----------
3 | three
1 | one
2 | two
4 | four
5 | five
记录'3,三'必须在第一行,然后其他人将在此记录后显示。谢谢你;
答案 0 :(得分:1)
试试这个:
select ID, NAME from
(select *, -1 as rnum from tb where id=3
union all
select *, ID as rnum from tb where id!=3 ) tb1
ORDER BY rnum ASC
答案 1 :(得分:0)
select * from mytable s where s.id=3
union all
select * from (
select t.id,t.name from mytable t where t.id!=3
order by t.id) as q;
答案 2 :(得分:0)
试试这个。它应该在PostgreSQL,MySQL和SQLServer中运行
SELECT ID, Name
FROM (
SELECT 1 AS ID, 'one' as NAME
UNION SELECT 2 , 'two'
UNION SELECT 3 , 'three'
UNION SELECT 4 , 'four'
UNION SELECT 5 , 'five'
) AS MyDataSet
ORDER BY CASE WHEN ID = 3 THEN 0 ELSE 1 END
答案 3 :(得分:0)
使用标准SQL,您可以简单地根据您想要的行排序(返回该特定行的值低于所有其他行的值),然后是ID。
SELECT * FROM mytable
ORDER BY CASE WHEN name='three' THEN 0 ELSE 1 END, ID