Sql 如何在选择查询的顶部设置已确定的记录?
我有一张db表。 我想在选择查询运行时返回前5条记录是特定的且未排序的结果,在这5条记录下面是排序的记录Sql 如何在选择查询的顶部设置已确定的记录?,sql,select,Sql,Select,我有一张db表。 我想在选择查询运行时返回前5条记录是特定的且未排序的结果,在这5条记录下面是排序的记录 id name 1 a 2 b 3 c 4 d 我想分类如下: id name 3 c 1 a 2 b 4 d 根据您提供的样本数据和期望输出进行更新,您可以这样做 SELECT * FROM Table1 ORDER BY CA
id name
1 a
2 b
3 c
4 d
我想分类如下:
id name
3 c
1 a
2 b
4 d
根据您提供的样本数据和期望输出进行更新,您可以这样做
SELECT *
FROM Table1
ORDER BY CASE
WHEN id = 3 THEN 0
WHEN id = 1 THEN 1
WHEN id = 2 THEN 2
WHEN id = 4 THEN 3
ELSE 4
END, id
下面是演示(SQL Server)这里是演示(MySql) 另一种方法是在一次选择中获取前五条记录,在第二次选择中获取所有其他记录;将用户定义的列(
n
在下面的示例中)插入到具有适当值的两个选项中(0
和1
)。然后将它们合并,并在外部先按此列选择顺序,然后根据需要应用其他排序规则
SELECT id
FROM
(
SELECT t.*, 0 n
FROM Table1 t
WHERE id IN (1,2,3,4,5)
UNION ALL
SELECT t.*, 1 n
FROM Table1 t
WHERE id NOT IN (1,2,3,4,5)
) q
ORDER BY q.n, CASE WHEN q.n = 1 THEN q.id END DESC
下面是演示(SQL Server)这里是演示(MySql)
旁注:当您询问sql查询相关问题时,请始终提供示例数据、所需输出、当前查询、,以及有关您正在使用的RDBMS及其版本的信息。请您重新表述您的问题,并添加一些示例数据,其中包含您所拥有的内容以及您希望返回的内容。真的吗??没有相关的代码,甚至没有你真正需要的例子。。。我们该如何帮助你。。。。我想这个问题最好的答案是。。。首先运行查询,然后,先选择特定的5,然后再对其他数据进行排序:)猜他想要的是将有序数据和无序数据+1分开,以便更好地回答问题。。