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

SQL在查询结果中输出行号

呼延靖
2023-03-14
问题内容

我想为sql查询的结果中的每一行生成一个行号。如何做到这一点?

例如:在请求

select distinct client_name from deliveries

我想添加一列以显示行号

我正在使用sql server 2005。


问题答案:

这取决于您使用的数据库。一种适用于SQL Server,Oracle和MySQL的选项:

SELECT ROW_NUMBER() OVER (ORDER BY SomeField) AS Row, *
FROM SomeTable

更改SomeField和SomeTable是根据您的特定表和相关字段进行排序的。自然,优选SomeField在查询上下文中是唯一的。

在您的情况下,查询将如下所示(Faiz首先制作了这样的查询):

SELECT ROW_NUMBER() OVER (ORDER BY client_name) AS row_number, client_name
FROM (SELECT DISTINCT client_name FROM deliveries) TempTable

我认为它不会对SQLite的工作(如果有人能在这里纠正我,我将不胜感激),我不知道有什么替代那里。



 类似资料:
  • 问题内容: 我认为sql server中的每一行都有一个唯一的编号。如何在我的SQL查询结果中包括它? 问题答案: 如果在运行查询时引用的是Management Studio提供的行号,则无法获得该行号,因为它实际上并不存在。Management Studio可以即时生成该文件。但是,如果您使用的是SQL Server 2005或更高版本,则可以使用ROW_NUMBER排序功能重新创建序列号。注意

  • 问题内容: 我非常确定我们不能将LIMIT子句用于我想做的事情-因此想确定是否还有其他方法可以实现此目的。 我有一个表,其中捕获了哪个用户访问了哪个商店。每次用户访问商店时,都会在此表中插入一行。 一些领域是 shopping_id(primary key) store_id user_id 现在,我想要的是-对于给定的一组商店,找到访问该商店的最大次数的前5位用户。 我可以一次在1个商店中进行以

  • 问题内容: 我正在尝试从sql数据库中的php中显示结果,MySQL语句是正确的,并且可以在phpMyAdmin中执行我想要的操作,但是由于某种原因,我的代码在网页中中断了 这是代码 这就是我得到的 通常,我需要由表ID限制从最小值到最大值的随机数 问题答案: 您需要从查询获得的结果集中的每一行中获取数据。您可以为此使用。 将代码更改为此:

  • 问题内容: 我有两个不同的表,在这些表上我应用了带有一些过滤器和汇总函数(如SUM,COUNT,SUBSTR)的选择查询。 我想在单个结果中获得这两个不同的输出。 查询1: 查询2: 我已经尝试过,而且都尝试过。但是那些没有用。我也尝试过,但是也没有用。请给我建议一些解决方案,在这种情况下会有所帮助。谢谢。 问题答案: 有两种将查询放在一起的方法:通过使用联接进行侧向查询,并通过联合在彼此之上进行

  • 问题内容: 我有一个表,像这样的数据: 表结果: 我需要涵盖以下所有方案的输出。 对于“审计”和“历史记录”字段应如何显示值有一条经验法则; 记录仅对于 原始帐户 应具有Audit =“ ADD”或“ CHANGE”&History =“ NEW”,“ BEFORE”或“ CURRENT” (这意味着表中的条目肯定从CurrNo = 1开始) 对于这种类型的帐户,记录不应该具有针对 迁移帐户的 A

  • 问题内容: 在我的Java项目中,我有很多JasperReports报告,其中包含复杂的SQL查询,其中包含很多参数。这些报告用于生成pdf文档,其中包含查询返回的数据,并以各种方式进行了分组和格式化。 现在,我还需要直接导出查询结果(例如ResultSet或Map或csv文件或类似文件)。是否可以要求JasperReports仅执行查询并返回结果,而不渲染pdf页面? (注意:这与为报表呈现选择