首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不接受所有记录的linq自定义排序

问不接受所有记录的linq自定义排序
EN

Stack Overflow用户
提问于 2017-09-08 06:29:42
回答 1查看 103关注 0票数 0

我有数据库(SQL server)表,记录超过100 k。表包含枚举(DB中的smallInt),其值为0-5。(前端为C#),我正在编写代码以获取该枚举排序的前10条记录。,我要定制订餐。和具有枚举值的记录一样,首先应该是2,然后是4,然后是3,同样。

我不想得到所有的记录,然后使用索引器对其进行排序,然后取前10位。我应该如何编写linq语句。即使是SQL命令对我来说也是可以的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 07:34:49

创建一个临时表[#EnumOrder],并将Enum值映射到所需的顺序。然后使用表内部联接,并按Order列进行排序。

代码语言:javascript
复制
CREATE TABLE [#EnumOrder] (
    [Enum] SMALLINT
    ,[Order] SMALLINT
    )

    INSERT INTO [#EnumOrder]
    VALUES 
    (2, 1), 
    (4, 2), 
    (3, 3), 
    (5, 4), 
    (0, 5),
    (1, 6)

SELECT TOP 10 t.*
FROM dbo.[YourTable] t
INNER JOIN [#EnumOrder] o ON t.EnumColumn = o.Enum
ORDER BY o.[Order]

DROP TABLE [#EnumOrder]

现在,记录将按以下顺序排序: 2、4、3、5、0和1。您可以始终将要插入的值更改为[#EnumOrder]表,以获得所需的顺序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46109998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档