gpt4 book ai didi

SQL Server Select 使用 IN() 查询并按相同顺序排序

转载 作者:行者123 更新时间:2023-12-04 23:53:56 26 4
gpt4 key购买 nike

我需要一个 SELECT使用 IN 查询条款,以及 Order by :

select * 
from table
where column_id IN (5,64,2,8,7,1)

此代码返回 1, 2, 5, 7, 8, 64 .

现在我需要按顺序返回相同的选择

输出需要是: 5, 64, 2, 8, 7, 1
在Mysql 中,有字段选项,但SQL Server 没有这样的字段选项。

最佳答案

使用要在 中搜索的值 Table Valued Constructor 并给出一个行号,然后将其与您的表连接,然后根据表值构造函数中的值对其进行排序。

查询

SELECT t1.* 
FROM(VALUES(1, 5), (2, 64), (3, 2), (4, 8), (5, 7), (6, 1)) t2([rn], [id])
JOIN [your_table_name] t1
ON t1.[id] = t2.[id]
ORDER BY t2.[rn];

您还可以使用要搜索的值以及其中的标识列创建一个表变量。然后把它和你的 table 结合起来。

查询
DECLARE @tbl AS TABLE([rn] INT IDENTITY(1, 1), [id] INT);
INSERT INTO @tbl([id]) VALUES(5), (64), (2), (8), (7), (1);

SELECT t1.*
FROM [your_table_name] t1
JOIN @tbl t2
ON t1.[id] = t2.[id]
ORDER BY t2.[rn];

关于SQL Server Select 使用 IN() 查询并按相同顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41712032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com