【问题标题】:how to select rows without sorting in sql server如何在sql server中选择行而不进行排序
【发布时间】:2014-11-14 06:05:17
【问题描述】:

我想使用 ID 选择记录列表。我有像 254,265,10,258 这样的订单。我想选择相同的订单。但是当我在 sql server 中编写查询时,它会自动按照 10,254,258,265 这样的顺序。

如何在 sql server 2008 中使用查询来纠正这个问题?

我有 1000 条这样的记录。请任何人帮助我?

【问题讨论】:

  • 请发表您的问题。
  • 如果您想要一个特定的订单,您必须为您的查询提供一个明确的ORDER BY 子句。
  • 记录的其余部分是什么样的?你为什么需要那个命令?是否有任何合乎逻辑的方式查看这些记录来判断您想要的顺序(如时间戳)?

标签: sql-server sql-server-2008 select


【解决方案1】:

如果您想要特定的顺序,例如 254,265,10,258,请使用临时表或表变量

declare @IDs table
(
    seq  int identity(1,1),
    ID   int
)
insert into @IDs (ID) select 254
insert into @IDs (ID) select 265
insert into @IDs (ID) select 10
insert into @IDs (ID) select 258

SELECT *
FROM   @IDs i INNER JOIN yourtable t ON i.DI = t.ID
ORDER BY i.seq

另一种方法是在 ORDER BY 子句中指定排序

ORDER BY (CASE ID when 254 then 1 when 265 then 2 when 10 then 3 when 258 then 4 end)

无论如何,您仍然需要 ORDER BY 子句

【讨论】:

  • 所以,他必须对 1000 条记录使用 1000 条 case 条件语句。
猜你喜欢
  • 1970-01-01
  • 2010-12-22
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
相关资源
最近更新 更多