sql - TSQL - 是否可以定义排序顺序?

标签 sql sql-server tsql sql-server-2000 sql-order-by

是否可以为返回的结果定义排序顺序?

我希望排序顺序为“橙色”“苹果”“草莓”,而不是升序或降序。

我知道 ORDER BY 可以执行 ASC 或 DESC,但是有 DEFINED('orange', 'apple', 'strawberry') 类型的东西吗?

这将在 SQL Server 2000 上运行。

最佳答案

这非常笨重,但您可以使用 CASE 语句进行排序:

SELECT * FROM Blah 
ORDER BY CASE MyColumn 
    WHEN 'orange' THEN 1 
    WHEN 'apple' THEN 2 
    WHEN 'strawberry' THEN 3 
    END 

或者,您可以创建一个包含排序字段和排序顺序的辅助表。

TargetValue  SortOrder
orange       1
apple        2
strawberry   3

并将您的表格加入到这个新表格中。

关于sql - TSQL - 是否可以定义排序顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4789241/

相关文章:

c# - 在没有 SQL View 的情况下,将数据反规范化为代码优先 Entity Framework 实体

sql-server - 找不到列 "dbo"或用户定义函数或聚合 "dbo.Splitfn",或者名称不明确

sql - 不可能在 UDF 中尝试/捕获?如何将 "TryCast"varchar 转换为日期时间?

sql-server - 将逗号分隔的 sql 字符串中的每个单词都用引号引起来?

MYSQL在两个特定记录和数据之间排序NULL

php - 仅加载数据库中的新行

sql - 将 XML 导入 SQL Server

sql - 需要一个工具来自动缩进和格式化 SQL Server 存储过程

sql - 为什么内部加入过滤表比没有过滤的表慢?

sql - 比较外键 - PostgreSQL