nik*_*klr 1 c# sql t-sql linq entity-framework
我想选择行,直到我找到一个数字的Id.如果我的数据按Id排序,问题可以很容易地解决.
Id Name
-----------
1 Bob
2 Eve
3 Alice
4 Michael
5 Anne
6 Mike
Run Code Online (Sandbox Code Playgroud)
要获取所有项目,直到找到Id 4,以下SQL语句就足够了:
SELECT * FROM Users WHERE Id <= 4
Run Code Online (Sandbox Code Playgroud)
如果数据按名称排序,我仍然希望获得项目,直到找到Id 4,我无法找到一个好的解决方案.
Id Name
-----------
3 Alice
5 Anne
1 Bob
2 Eve
4 Michael
6 Mike
Run Code Online (Sandbox Code Playgroud)
要定义的语句的输出应该是:
Id Name
-----------
3 Alice
5 Anne
1 Bob
2 Eve
4 Michael
Run Code Online (Sandbox Code Playgroud)
编辑1:
使用以下语句,输出几乎是我需要的,但缺少Id 4的项目.
queryable.OrderBy(o => o.Name).TakeWhile(o => o.Id != 4);
Id Name
-----------
3 Alice
5 Anne
1 Bob
2 Eve
Run Code Online (Sandbox Code Playgroud)
是否可以包含Id 4的项目?
编辑2:
现在我采用这种方法:
queryable.OrderBy(o => o.Name).TakeWhile(o => o.Id != 4).Union(queryable.Where(o => o.Id == 4))
Run Code Online (Sandbox Code Playgroud)
由于Id是唯一的,因此UNION语句应该没有问题.但我不确定这句话是否是最有效的.
Context.Table.OrderBy(p => p.Name).TakeWhile(p => p.id != 4);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |