You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中对books表的title和author列按字母排序输出

实现books表中书名与作者列分别按字母排序输出

需求说明

现有一张名为books的表,包含整数类型的id、文本类型的title(书名)、文本类型的author(作者)列。需要将title列与author列的数据分别按字母顺序排序后输出。

建表与插入数据SQL语句

CREATE TABLE books (
  id Int,
  title Varchar,
  author Varchar
);

INSERT INTO books (title, author) VALUES ("爱丽丝梦游仙境", "刘易斯·卡罗尔");
INSERT INTO books (title, author) VALUES ("几何原本", "欧几里得");
INSERT INTO books (title, author) VALUES ("延伸的表现型", "理查德·道金斯");
INSERT INTO books (title, author) VALUES ("自然哲学的数学原理", "艾萨克·牛顿");
INSERT INTO books (title, author) VALUES ("平面国:多维空间传奇故事", "埃德温·艾博特·艾博特");
INSERT INTO books (title, author) VALUES ("皇帝新脑", "罗杰·彭罗斯");
INSERT INTO books (title, author) VALUES ("罗密欧与朱丽叶", "威廉·莎士比亚");

解决方案SQL语句

-- 查询并按字母升序排序所有书名
SELECT title FROM books ORDER BY title ASC
UNION ALL
-- 查询并按字母升序排序所有作者名
SELECT author FROM books ORDER BY author ASC;

语句说明

  • 第一个SELECT语句提取所有书名,通过ORDER BY title ASC按字母升序排列;
  • 第二个SELECT语句提取所有作者名,通过ORDER BY author ASC按字母升序排列;
  • 使用UNION ALL将两个结果集合并,确保先输出排序后的书名列表,再输出排序后的作者列表。

预期输出

爱丽丝梦游仙境
几何原本
平面国:多维空间传奇故事
自然哲学的数学原理
罗密欧与朱丽叶
皇帝新脑
延伸的表现型
埃德温·艾博特·艾博特
欧几里得
艾萨克·牛顿
刘易斯·卡罗尔
理查德·道金斯
罗杰·彭罗斯
威廉·莎士比亚

内容的提问来源于stack exchange,提问作者Keshav Khanal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 01:09:27