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

SQL:结果顺序是否映射到'IN'表达式中的值?

夹谷衡
2023-03-14
问题内容

我有一个记录ID列表,我想要从SQL Server 2008中的表中检索单个值。

我的查询是:

SELECT TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...)

“ IN”表达式包含数百个ID。ID列是表的主键。

如果我的桌子是这样的:

ID    Value
1     A
2     B
3     C

我将始终获得在“ IN”表达式中按出现顺序排序的结果的结果吗?如果没有,我正在考虑做:

SELECT TestResult.ID, TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...)

问题答案:

不,您将不会总是获得基于的结果IN

要明确,并添加一个ORDER BY子句。

SELECT FailureDetails 
FROM TestResult 
WHERE ID IN (1,2,3,...) 
ORDER BY ID;


 类似资料:
  • 问题内容: 有没有一种方法可以使我按照WHERE命令中要求的顺序使mysql从成员数据库返回结果? 目前,无论我做什么,它将返回MemberID ASC排序的结果。我希望它能按我要求的顺序返回6,3,5。 问题答案:

  • 映射类上的属性可以链接到SQL表达式,SQL表达式可用于查询。 使用杂交种 将相对简单的SQL表达式链接到类的最简单和最灵活的方法是使用一个在本节中描述的所谓的“混合属性”。 混合属性 . 混合提供了一个同时在Python和SQL表达式级别工作的表达式。例如,下面我们映射一个类 User ,包含属性 firstname 和 lastname 包括一个混合动力车 fullname ,这是两个字符串的

  • 问题内容: 当我使用IN从表中选择一组行时,例如 有一种SQL技巧可以按照IN集合中给定的顺序恢复它们吗? 因此,在示例中,假设x具有ID为23、55、44和12的行,则将按该顺序返回这四行。 问题答案:

  • 问题内容: 我有以下代码片段: 我知道在C ++中,您被教导不要依赖子表达式的求值顺序,因为它不能保证完全是任何顺序。因此,此代码将是错误的,并且不能保证条件中表达式所产生的布尔值是真实的(例如,可以在第一次等式测试中对y进行递增运算)。由于我是在Java认证书中阅读此代码的,因此我认为Java并非如此。.我的意思是,我是否保证Java的评估顺序始终是从左到右?因此,以上表达式应始终为true。

  • 我有以下代码片段: 我知道在C++中,你被教导不要依赖子表达式的求值顺序,因为它不能保证是任何顺序。因此这段代码是错误的,并且条件中的表达式所产生的布尔值不能保证为真(例如,在第一个相等性测试中计算y之前,可以增加y)。因为我是在Java认证书上读到这段代码的,所以我假设Java不是这样的。我的意思是,我能保证Java的计算顺序总是从左到右吗?所以上面的表达式应该总是产生true。

  • 问题内容: 我有一个查询,可以使用公用表表达式来检索页面的所有模块和子模块。是否可以多次使用cte的结果? 例子 第一个选择有效,但是第二个选择引发错误“无效的对象名称’child_modules’”。 问题答案: 从该手册: 指定一个临时的命名结果集,称为公用表表达式(CTE)。这是从一个简单的查询派生的,并 在 单个 SELECT,INSERT,UPDATE或DELETE语句的执行范围内定义