我的查询结果如下
name id
a 2
b 3
c 7
h 9
i 1
我需要显示如下结果 预期结果
name id
c 7
a 2
b 3
h 9
i 1
id字段是Primarykey,因此我希望显示此
到目前为止,我尝试过订购方式,但它只提供订购选项,例如体面或者提升。
请帮我这样做
我做过类似下面的事情
create procedure proc1
@id int;
begin
select name,id from tablname order by id
end
我也曾尝试过,但也失败了。请帮我解决这个问题
答案 0 :(得分:2)
试试这个:
CREATE PROCEDURE proc1 (@id int)
AS
SELECT name,id
FROM tablname
ORDER BY CASE WHEN id=@id THEN 0 ELSE id END
注意:假设您的id列的值始终大于0,这将有效。
答案 1 :(得分:0)
我试过这个,它确切地给出了你所需的输出。
declare @name varchar(10)
set @name = 'c'
create table #temp (id int ,name varchar(10))
insert into #temp(id,name) values(1,'i')
insert into #temp(id,name) values(2,'a')
insert into #temp(id,name) values(3,'b')
insert into #temp(id,name) values(7,'c')
insert into #temp(id,name) values(9,'h')
Select name,id from #temp ORDER BY CASE WHEN name=@name THEN '' ELSE name END
Drop table #temp