我想在单个colum表中的sequcence中显示顶部的特定记录。以下是示例查询
create table empp(ename varchar(100))
insert into empp values('Name3')
insert into empp values('Name4')
insert into empp values('Name2')
insert into empp values('Name1')
由于我想在第一和第二行的'Name2'和'Name3'中显示,其他可能是任何顺序。我尝试了以下查询,但未获得所需的结果
select * from empp where ename in ('Name2','Name3')
union
select * from empp
预期的O / P
名称2 NAME3 名1 NAME4
答案 0 :(得分:3)
试试这个: -
Select * from empp
ORDER BY CASE WHEN ename = 'Name2' THEN 0
WHEN ename='Name3' THEN 1
else 2
END
答案 1 :(得分:2)
使用CASE()
进行自定义重新排序记录。
SELECT *
FROM TableName
ORDER BY CASE WHEN ENAME = 'Name2' THEN 0
WHEN ENAME = 'Name3' THEN 1
ELSE 2
END ASC
但如果你不介意name2
和name3
的排序,只要它们在第一位,那么IN
就足够了。
SELECT *
FROM TableName
ORDER BY CASE WHEN ENAME IN ('Name2','Name3')
THEN 1
ELSE 2
END ASC