22,210
社区成员
发帖
与我相关
我的任务
分享
DECLARE @T TABLE(Col VARCHAR(100))
INSERT INTO @T
select '16-1 重庆经济和社会发展历史回顾--重庆经济中心形式及演进(提纲)(一稿)' union all
select '16-10 论近代重庆经济中心(謄清件)' union all
select '16-10 论近代重庆经济中心(謄清件)' UNION all
select '17-11-1 《中国近代史》(讲稿)(第1-3章)' union all
select '17-11-2 《中国近代史》(讲稿)(第1-3章)' union all
select '17-11-3 《中国近代史》(讲稿)(第1-3章)'
SELECT Col
FROM ( SELECT *
,Ord = REVERSE(REPLACE(LEFT(Col, PATINDEX('%[^0-9-]%', Col) - 1),
'-', '.'))
FROM @T
) AS t
ORDER BY REVERSE(PARSENAME(Ord,1))*1,REVERSE(PARSENAME(Ord,2))*1,REVERSE(PARSENAME(Ord,3))*1
SELECT Col
FROM ( SELECT *
,Ord = LEFT(Col, PATINDEX('%[^0-9-]%', Col) - 1) + '---'
FROM @T
) AS t
ORDER BY LEFT(Ord, CHARINDEX('-', Ord) - 1) * 1
,SUBSTRING(Ord, CHARINDEX('-', Ord) + 1,
CHARINDEX('-', Ord, CHARINDEX('-', Ord) + 1) - CHARINDEX('-',
Ord) - 1) * 1
,RIGHT(Ord, CHARINDEX('-', REVERSE(Ord)) - 1) * 1
/*
Col
16-1 重庆经济和社会发展历史回顾--重庆经济中心形式及演进(提纲)(一稿)
16-10 论近代重庆经济中心(謄清件)
16-10 论近代重庆经济中心(謄清件)
17-11-1 《中国近代史》(讲稿)(第1-3章)
17-11-2 《中国近代史》(讲稿)(第1-3章)
17-11-3 《中国近代史》(讲稿)(第1-3章)
*/
WITH a(bookname) AS (
SELECT N'17-10 《中国通史、中国近代史》复习要点' union
SELECT N'17-11 《中国近代史》(讲稿)(第1-3章)' union
SELECT N'17-11-1 《中国近代史》(讲稿)(第1-3章)'
)
SELECT *,SUBSTRING(a.bookname,1,PATINDEX('%[^0-9,-]%',a.bookname))
FROM a ORDER BY SUBSTRING(a.bookname,1,PATINDEX('%[^0-9,-]%',a.bookname)) desc
with t(s) as (
select '16-1 重庆经济和社会发展历史回顾--重庆经济中心形式及演进(提纲)(一稿)' union all
select '16-10 论近代重庆经济中心(謄清件)' union all
select '16-10 论近代重庆经济中心(謄清件)' union all
select '16-11 (第二节、工业中心的形式(謄清件))找不到全宗、暂放在此卷' union all
select '16-2 重庆经济和社会发展历史回顾--重庆经济中心形式及演进(提纲)(二稿)' union all
select '16-3 现代重庆、全国经济中心(第二章一稿)' union all
select '16-4 论近代重庆经济决心(提纲)' union all
select '16-5 近代重庆经济中心的初步形成(第一章 二稿)' union all
select '16-6 近代重庆经济中心的初步形成(第一章 一稿)' union all
select '16-7 重庆:中国长江上游的经济中心(一稿)' union all
select '16-8 论近代重庆经济中心(打印件)' union all
select '16-9 重庆:中国长江上游的经济中心(謄清件)(两份)' union all
select '16-99 重庆城市经济发展特点' union all
select '17-1 《中国近代史》授课开头语 ' union all
select '17-10 《中国通史、中国近代史》复习要点 ' union all
select '17-11 《中国近代史》(讲稿)(第1-3章)' union all
select '17-11-1 《中国近代史》(讲稿)(第1-3章)' union all
select '17-11-2 《中国近代史》(讲稿)(第1-3章)' union all
select '17-11-3 《中国近代史》(讲稿)(第1-3章)' union all
select '17-2 《中国近代史》授课的几点说明 ' union all
select '17-3 中国近代史串讲纲目 ' union all
select '17-4 读书笔记' union all
select '17-5 《中国近代史》讲稿 ' union all
select '17-6 《近代史》(讲稿)' union all
select '17-7 《世界近代史》(听课笔记) ' union all
select '17-8 关于《中国革命史》教学安排 ' union all
select '17-9 1985年大专理论班《中国通史》试题初稿 '
),tt as (
select
s,REPLACE(STUFF(t.s,charindex(' ',t.s),len(t.s),''),'-','.') s1
from t
)
select *
,REVERSE(PARSENAME(REVERSE(tt.s1),1))*1 sort1
,REVERSE(PARSENAME(REVERSE(tt.s1),2))*1 sort2
,REVERSE(PARSENAME(REVERSE(tt.s1),3))*1 sort3
from tt
order by sort1,sort2,sort3