SQL: 如何按降序排列属性,但它的第二个字符需要升序
SQL: How to Order By the attributes in Descending but second character of it need to be Ascending Order
如何在 MySQL 中生成此输出?
首先根据专辑格式降序排列专辑,然后按升序排列曲目。
我可以用这个命令输出:
SELECT album_singer, album_name, album_format_name, album_tracks
FROM album, album_format
WHERE album.Album_Type_ID = album_format.Album_Format_ID
ORDER BY album_format_name DESC, album_tracks ASC
我可以产生的输出:
Vinyl
Vinyl
Digital
Compact Disc
Compact Disc
Compact Disc
Compact Disc
Compact Disc
Cassette
Cassette
我需要的输出:
Vinyl
Vinyl
Digital
Cassette
Cassette
Compact Disc
Compact Disc
Compact Disc
Compact Disc
Compact Disc
MySQL 的 field
对于自定义排序非常有用,如您的预期输出要求。
此外,正如 Dale K 在评论中提到的,隐式连接(在 from
子句中有多个项目)是一种过时的做法,您可能应该使用显式 join
子句:
SELECT album_singer, album_name, album_format_name, album_tracks
FROM album
JOIN album_format ON album.Album_Type_ID = album_format.Album_Format_ID
ORDER BY FIELD(album_format_name, 'Vinyl', 'Digital', 'Cassette', 'Compact Disc'),
album_tracks ASC
如何在 MySQL 中生成此输出?
首先根据专辑格式降序排列专辑,然后按升序排列曲目。
我可以用这个命令输出:
SELECT album_singer, album_name, album_format_name, album_tracks
FROM album, album_format
WHERE album.Album_Type_ID = album_format.Album_Format_ID
ORDER BY album_format_name DESC, album_tracks ASC
我可以产生的输出:
Vinyl
Vinyl
Digital
Compact Disc
Compact Disc
Compact Disc
Compact Disc
Compact Disc
Cassette
Cassette
我需要的输出:
Vinyl
Vinyl
Digital
Cassette
Cassette
Compact Disc
Compact Disc
Compact Disc
Compact Disc
Compact Disc
MySQL 的 field
对于自定义排序非常有用,如您的预期输出要求。
此外,正如 Dale K 在评论中提到的,隐式连接(在 from
子句中有多个项目)是一种过时的做法,您可能应该使用显式 join
子句:
SELECT album_singer, album_name, album_format_name, album_tracks
FROM album
JOIN album_format ON album.Album_Type_ID = album_format.Album_Format_ID
ORDER BY FIELD(album_format_name, 'Vinyl', 'Digital', 'Cassette', 'Compact Disc'),
album_tracks ASC