当前位置: 首页 > 面试题库 >

SQL-根据查询参数保留排序

公羊向荣
2023-03-14
问题内容

我正在尝试使用SELECTwithIN子句,并且希望能够以与清单中的元素相同的顺序返回结果IN。例如:

SELECT * FROM orders WHERE order_no IN ('B123', 'B483', 'B100', 'B932', ...);

我希望他们以相同的顺序回来。理想的情况是,如果我能有一个这样的声明,那就太好了:

SELECT * FROM orders WHERE order_no IN ('B123', 'B483', 'B100', 'B932', ...)
ORDER BY ('B123', 'B483', 'B100', 'B932', ...);

我已经看到了使用CASEDECODE关键字定义某种自定义排序的查询示例。但是,在所有这些示例中,它们的顺序都是针对一组预定的选项。鉴于我的订购完全取决于用户输入的搜索条件,因此可能有2个选项的列表或100个要订购的列表…

有任何想法吗?我不知道的某些Oracle功能,某种使用方式CASEDECODE动态集?


问题答案:

将值插入到临时表中,然后将您选择的表加入该表中。

然后,您可以在临时表列上进行自然排序。

CREATE GLOBAL TEMPORARY TABLE sort_table (
  value       VARCHAR2(100),
  sort_order  NUMBER
) ON COMMIT DELETE ROWS;

INSERT INTO sort_table VALUES ('B123',1);
INSERT INTO sort_table VALUES ('B483',2);
... etc. ...

select * from mytable
inner join sort_table
on mytable.mycolumn = sort_table.value
order by sort_table.sort_order;

要清除临时表,只需COMMIT



 类似资料:
  • 问题内容: 在我的React应用程序中,我有一些用户进入应用程序的参数,这些参数提供有关它们来自何处的一些信息。有没有一种方法可以使用react- router在整个应用程序中保留这些查询参数。意思是每次更改路线时,Id都会像那些查询参数一样保留在url中。我看到的唯一示例是在路由之间传递查询参数,但没有为每个路由都保留它们。 问题答案: React-Router v3的解决方案: 我在Types

  • 问题内容: 是否可以在单个SQL语句中执行以下操作: 例如,在提示中使用电话号码的子集。然后查询其中包含电话号码的数据库,并返回原始子集中哪些电话号码不在我的数据库中?我的数据库是Oracle 10g。 基本上,我不想知道哪个电话号码不在数据库中,而是要取回它们之间的电话号码。 问题答案: 假设电话号码是NUMBER,则可以生成特定范围内的所有电话号码的列表 然后,您可以将该范围内所有电话号码的列

  • 本节将学习如何从SQL Server数据库查询数据。从一个简单的查询开始,查询语句用于从单个或多个表中检索数据。 SQL是一种特殊目的的编程语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语

  • 问题内容: 假设我们有一个具有如此简单结构的“汽车”表… 拳头,我选择的是汽车(1,黑色,重型,豪华轿车),然后我想获取相关汽车的列表,这些列表按匹配列的数量排序(没有任何列的权重)。所以,首先我期望看到(黑色,重型,豪华轿车)汽车,然后我期望看到只有2个匹配字段的汽车,等等。 是否可以使用SQL执行这种排序? 对不起,我的英语,但我真的希望我对您的问题很清楚。 谢谢你。 问题答案: 可能有几种方

  • 问题内容: 我有一个存储在列表中的关键字列表。 要从表中获取记录,请使用以下查询: 您可能已经注意到,我的查询容易受到sql注入的攻击,因此我想通过SqlCommand()使用参数。我已经尝试了以下方法,但仍然无法正常工作: 我在哪里犯错,或者应该怎么做? 问题答案: 您在这里做错了几件事: 您为所有参数赋予相同的名称。那行不通。参数需要唯一的名称。 您为每个项目创建一个新的SqlCommand。

  • 我正在尝试使用sqlalchemy执行原始sql查询,并想知道什么是“正确”的方法。 我的查询如下(目前): 我不喜欢的是字符串格式和缺乏任何参数处理(你好music_volume引号:-D)。 我试图遵循这个答案: 如何在SQLAlchemy flask应用程序中执行原始SQL 应用我读到的内容后,我的代码片段如下所示: 然而,我得到的错误,mv和ml是不能识别的参数。 如果我把我的代码片段改成