MySQL有一个排序功能,允许您 Select 按字段排序的值的顺序() ClickHouse没有这个功能. 我也有类似的要求. SELECT name FROM table WHERE id IN(5,3,7,8,11,14,54)

我需要按照IN()中指定的顺序返回结果.我在任何地方都找不到关于如何做到这一点的信息.

推荐答案

您可以try 使用indexOf关键字.

SELECT name
FROM table
WHERE id IN (5, 3, 7, 8, 11, 14, 54)
ORDER BY indexOf([5, 3, 7, 8, 11, 14, 54], id);

这将按照IN()子句中指定的顺序给出结果

Sql相关问答推荐

PostgreSQL:获取每家店铺收入最高的员工

SQL—如何根据2列填写缺失的值

SQL查询每个客户的最新条目

删除事务中的本地临时表

检索上一个星期四和上一个星期三

OVER子句WITH PARTITION BY和ORDER BY忽略主查询的WHERE子句

判断序列索引处的序列是否完整

正在编写查询.我需要将订阅的时间段分为第一个订阅中包含的另一个订阅之前和之后的时间段

Oracle中的时间戳

我需要一个regexp_like来只验证字母D或T、数字和管道

在VB.NET中如何在MS Access数据库中创建SQL项目历史库存卡

如何在多列上编写具有不同条件的查询?

如何根据几个条件 Select 值:如果满足一个范围的SUM,则对另一个范围求和

postgres中的条件索引和触发器

为什么左联接结果在MS Access数据库中不匹配

在SQL中转换差异表的多列

我可以在 T-SQL (SQL Server) 的函数内使用 OPTION 子句吗?

为每组填写行以进行旋转

来自 SQL Server 的树层次 struct 图的 JSON

在 SQL 中将行显示为列