SQL如何實現自定義排序規則

2021-04-13 01:27:44 字數 760 閱讀 5724

--現有醫院行政級別資料,需要由低(一乙)到高(三甲)排序

create table #temp(name nvarchar(32))

insert into #temp(name) values('三甲')

insert into #temp(name) values('一乙')

insert into #temp(name) values('二甲')

insert into #temp(name) values('三乙')

insert into #temp(name) values('一甲')

insert into #temp(name) values('二乙')

--charindex:返回字串中指定表示式的起始位置

select * from #temp

order by charindex(substring(name,2,1),'乙甲'),

charindex(substring(name,1,1),'一二三四五六七**十')

--charindex 和 patindex 函式都返回指定模式的開始位置。patindex 可使用萬用字元,而 charindex 不可以。

select * from #temp

order by patindex('%'+substring(name,2,1)+'%','乙甲'),

patindex('%'+substring(name,1,1)+'%','一二三四五六七**十')

drop table #temp

SQL如何實現自定義排序規則

現有醫院行政級別資料,需要由低 一乙 到高 三甲 排序 create table temp name nvarchar 32 insert into temp name values 三甲 insert into temp name values 一乙 insert into temp name v...

SQL自定義不規則排序

datas name position 李小明軟體工程師 王小軍專案經理 張小麗測試工程師 宋小文需求分析師 井小莉軟體工程師 趙小鑫實施工程師 楊小芳測試工程師 order by 配合case when case when將職位轉換成順序數字 再利用order by進行排序。select t.na...

sql實現自定義排序

實際應用中sql提供的預設按某一欄位排序,asc desc並不滿足需要,需要根據使用者需求自定義的按照默寫順序排序,這裡提供乙個方法,適用於自定義型別不多的情況下,多了就得存欄位關聯表排序了吧。例子如下 select from select 3 as id,小明 as name from dual ...