SQL IN 子句 ORDER

发布于 2025-01-12 00:56:38 字数 282 浏览 2 评论 0原文

这是目前的情况:

string[] ListOfStrings = ("A","B","C");
record[] v = [SELECT fieldA, fieldB FROM TableX WHERE fieldB IN : ListOfStrings];

理想情况下,我希望返回的列表“v”按照“ListOfStrings”排序;

这样 "v[0].fieldB" is == "A";

相反,我得到的 "v" 是随机排序的;

This is the current situation:

string[] ListOfStrings = ("A","B","C");
record[] v = [SELECT fieldA, fieldB FROM TableX WHERE fieldB IN : ListOfStrings];

Ideally I want the returned list "v" ordered as per "ListOfStrings";

so that "v[0].fieldB" is == "A";

Instead I get "v" sorted randomly;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

杀手六號 2025-01-19 00:56:38

SQL 让我们管理自定义订单。一种方法是使用 Case 语句即可做到这一点。

SELECT fieldA, fieldB
FROM TableX 
ORDER BY Case fieldB
              When 'A' Then 1
              When 'B' Then 2
              When 'C' Then 3
         END
         -- second order can be add here for example :
         , fieldA

表示fieldB 的值等于'A' 的所有记录都排在前面,以此类推。对于具有相同顺序的记录排序,请在查询末尾添加另一个顺序而不是注释。

SQL let us manage the custom order. One approach is using Case Statement you can do it.

SELECT fieldA, fieldB
FROM TableX 
ORDER BY Case fieldB
              When 'A' Then 1
              When 'B' Then 2
              When 'C' Then 3
         END
         -- second order can be add here for example :
         , fieldA

It means all record which their value of fieldB equals 'A' come first and so on. For sorting record with same order add another order instead of comment at the end of query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文