--> 测试数据: [ta]
if object_id('[ta]') is not null drop table [ta]
go
create table [ta] ([menlei] varchar(4),[jibie] varchar(8),[kaiqi] varchar(4))
insert into [ta]
select '普通','乙11','对开' union all
select '普通','1甲2','三七' union all
select '装饰','2装饰丙1','单开' union all
select '普通','3丙1','对开' union all
select '装饰','5乙2','单开' union all
select '装饰','7甲23','三七'select * from [ta]
order by menlei,
case when CHARINDEX('甲',jibie)>0 then 0 when CHARINDEX('乙',jibie)>0 then 1 when CHARINDEX('丙',jibie)>0 then 2 end,
CHARINDEX(kaiqi,'单开,三七,对开')
普通 1甲2 三七
普通 乙11 对开
普通 3丙1 对开
装饰 7甲23 三七
装饰 5乙2 单开
装饰 2装饰丙1 单开
if object_id('[ta]') is not null drop table [ta]
go
create table [ta] ([menlei] varchar(4),[jibie] varchar(8),[kaiqi] varchar(4))
insert into [ta]
select '普通','乙11','对开' union all
select '普通','1甲2','三七' union all
select '装饰','2装饰丙1','单开' union all
select '普通','3丙1','对开' union all
select '装饰','5乙2','单开' union all
select '装饰','7甲23','三七'select * from [ta]
order by menlei,
case when CHARINDEX('甲',jibie)>0 then 0 when CHARINDEX('乙',jibie)>0 then 1 when CHARINDEX('丙',jibie)>0 then 2 end,
CHARINDEX(kaiqi,'单开,三七,对开')
普通 1甲2 三七
普通 乙11 对开
普通 3丙1 对开
装饰 7甲23 三七
装饰 5乙2 单开
装饰 2装饰丙1 单开
menlei jibie kaiqi
普通 乙级11 对开
普通 1甲级2 三七
装饰 2装饰丙级1 单开
普通 3丙级1 对开
装饰 5乙级2 单开
装饰 7甲级23 三七
普通 1甲级 单开
普通 1甲级 对开
正常排序结果如下:
menlei jibie kaiqi
普通 1甲级 单开
普通 1甲级2 三七
普通 1甲级 对开
普通 乙级11 对开
普通 3丙级1 对开
装饰 7甲级23 三七
装饰 5乙级2 单开
装饰 2装饰丙级1 单开