Sql server 2008 按自己的首选顺序对存储过程中的数据进行排序

Sql server 2008 按自己的首选顺序对存储过程中的数据进行排序,sql-server-2008,Sql Server 2008,我有一张有列的桌子 [ID] AS bigint [CompanyID] AS bigint [Name] AS nvarchar(50) [Position] AS nvarchar(15) 在combobox中的位置是恒定的,值为总裁、副总裁、秘书等。我需要对数据进行排序,因为第一个是总裁,第二个是副总裁 order by ID 也许吧 除非您有另一个数据列可用于在查询中按排序。这听起来很具体,因此您需要数据中的某些内容,以便您可以使用这些数据进行排序。请查看此项。用例何时实现它 C

我有一张有列的桌子

[ID] AS bigint
[CompanyID] AS bigint
[Name] AS nvarchar(50)
[Position] AS nvarchar(15)
在combobox中的位置是恒定的,值为总裁、副总裁、秘书等。我需要对数据进行排序,因为第一个是总裁,第二个是副总裁

order by ID  
也许吧


除非您有另一个数据列可用于在查询中按排序。这听起来很具体,因此您需要数据中的某些内容,以便您可以使用这些数据进行排序。

请查看此项。用例何时实现它

Create table #Employee(
ID bigint,
Name nvarchar(50),
Position nvarchar(15)
)

insert into #Employee values (031,'AAA','Secretary')
insert into #Employee values(781,'ZZZ','Secretary')
insert into #Employee values(166,'PPP','President')
insert into #Employee values(561,'BBB','Vice President')
insert into #Employee values(441,'KKK','Secretary')
insert into #Employee values(124,'DDD','Secretary')
insert into #Employee values(100,'ZZZ','Vice President')

select *,CASE 
WHEN Position='President' THEN 1 
WHEN Position='Vice President' THEN 2 
WHEN Position='Secretary' THEN 3 
END  AS [PositionOrder] from #Employee
order by [PositionOrder]

drop table #Employee

谢谢,我有个解决办法。从[dbo].[APP_Member]中选择[ID]、[LabourFederationID]、[Name]、[AdministrativeCapacity],其中([LabourFederationID]=1或1为空)按顺序(大小写[AdministrativeCapacity]当“总裁”时,1当“副总裁”时,2当“秘书”时,3当“出纳”时,4当“助理出纳”时,5当“助理出纳”时,100结束)ASC,[姓名]ASC是的,这将起作用,但当您添加另一个条目时会发生什么?您需要更改代码。您应该在表中添加一个“OrderBy”列,以便可以在该列上进行排序。