我需要一个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没有这样的字段选项.
使用您要在a中搜索的值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];
您还可以使用要搜索的值创建表变量,并在其中创建标识列.然后加入你的桌子吧.
询问
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];