我需要创建存储过程以从表中获取所有文档标题,但是必须以显示文档章节的方式对其进行排序。我自己真的不知道怎么做。
必须这样订购:
ID Chapter Description
1 0001-0299 Title
2 0001-0019 Title
3 0001 "some text"
4 0002 "some text"
.
.
. 0021-0039 Title
. 0021 "some text"
. 0022 "some text"
我认为你明白了。有人可以帮忙吗?感谢任何帮助。
答案 0 :(得分:1)
也许你打算这样做:
select id, chapter, description
from t
order by left(chapter, 4),
(case when chapter like '%-%' then 1 else 2 end),
chapter;
这个顺序由章节的前四个字符排序,然后由带有连字符的章节排序,最后由章节本身排序。如果您需要前两个值为“其他”顺序,则:
select id, chapter, description
from t
order by left(chapter, 4),
(case when chapter like '%-%' then 1 else 2 end),
(case when chapter like '%-%' then chapter end) desc,
chapter asc;
答案 1 :(得分:0)
这将按ID排序,然后按章节排序。
IF OBJECT_ID ( 'orderedDocuments', 'P' ) IS NOT NULL
DROP PROCEDURE orderedDocuments;
GO
CREATE PROCEDURE orderedDocuments
AS
SELECT
ID, Chapter, Description
FROM
[Table Name]
ORDER BY
ID DESC
,Chapter DESC
GO