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

带有增量整数列的MSSQL Select语句-不是来自表

白昊乾
2023-03-14
问题内容

如果可能,我需要一个t-sql查询,该查询从任意表中返回值,并且还返回一个增量整数列,其中第一行的值= 1,第二行的值为2,依此类推。

此列实际上不驻留在任何表中,并且必须严格地递增,因为ORDER BY子句可以对表的行进行排序,并且我希望递增的行始终处于完美的形状…

提前致谢。

--EDIT对不起,忘了提及,它必须在SQL Server 2000上运行


问题答案:

对于SQL 2005及更高版本

SELECT ROW_NUMBER() OVER( ORDER BY SomeColumn ) AS 'rownumber',*
    FROM YourTable

2000年,你需要做这样的事情

SELECT IDENTITY(INT, 1,1) AS Rank ,VALUE
INTO #Ranks FROM YourTable WHERE 1=0

INSERT INTO #Ranks
SELECT SomeColumn  FROM YourTable
ORDER BY SomeColumn

SELECT * FROM #Ranks
Order By Ranks

另请参阅此处 行号



 类似资料:
  • 问题内容: 那里还有另一个与此类似的问题,但似乎并没有回答 我的 问题。 我的问题是这样的:为什么我要从下面的SQL中找回此错误? 这里是: 这里是: 如果您也想对这里发生的任何疯狂事情提供任何反馈,请随时这样做。我会结成小块。 问题答案: UNION(和)要求所有UNION查询必须具有: SELECT子句中的列数相同 列数据类型必须在每个位置都匹配 您的查询有: 我最简单的重写是: 您已经两次加

  • 问题内容: 您将如何用PHP编写一个准备好的MySQL语句,每次使用不同数量的参数?这样的查询的示例是: 该条款将有不同数量的s各自运行它时。 我心中有两种可能的解决方案,但想看看是否有更好的方法。 可能的解决方案1 使该语句接受100个变量,并用保证不在表中的伪值填充其余变量;多次调用100多个值。 可能的解决方案2 请勿使用准备好的语句;严格构建并运行查询以检查可能的注入攻击。 问题答案: 我

  • 问题内容: 使用Postgres,我试图用SQL自动编号主键。但是,这给了我一个错误。 错误: 知道为什么吗? 问题答案: Postgres 10或更高版本 列(请参见下文)保持不变。但是考虑一个 专栏。Postgres10实现了此标准SQL功能。 手册中的基本语法和信息。 __用列 创建 表 将 列 添加 到现有表 表可能填充也可能不填充行。 同时使它成为PK(表还不能拥有PK): 有关的: 如

  • 问题内容: 更好写吗 要么 我认为第二个更好,应该更快并且更多的内存优化。但是他们不平等吗? 问题答案: 为了提高性能,通常最好使代码尽可能简单明了,并且通常会表现良好(因为JIT会最优化该代码)。就您而言,最简单的示例也可能是最快的。 我要么做 或更长的版本 要么 如果不需要,最好不要创建对象。 性能明智,第一是最好的。 如果您确定不会溢出,可以使用 您不会比这更快。

  • 问题内容: 使用带有预准备语句的Java查询时,是否有一种方法可以从数据库查询中检索自动生成的键。 例如,我知道AutoGeneratedKeys可以按以下方式工作。 然而。如果我想插入一个准备好的语句该怎么办。 有没有办法做到这一点,我不知道。从javadoc看来,PreparedStatements无法返回自动生成的ID。 问题答案: 是。看这里。第7.1.9节。将您的代码更改为:

  • 我正在使用java中的MySQL库执行一个查询。在我的数据库结构中,有一列名为(主键,非空且自动递增)。通常在每次插入查询中,我都将值设置为,在查询执行后,它会增加最后一个id,但在java中这样做会给我异常。 这就是代码: 如何使用自动增量ID执行查询?