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”列,以便可以在该列上进行排序。