【问题标题】:how to reverse a sequence [closed]如何反转序列[关闭]
【发布时间】:2013-09-17 06:57:01
【问题描述】:

我的桌子

EMP_NO                 EMP_NAME   
---------------------- ---------- 
1                      ram        
2                      mohan      
3                      raju       
4                      santosh    
5                      nikil      
6                      praveen    
7                      manju      
8                      hari       
9                      kumar      
10                     hareesh    
11                     chndra     

我在 emp_no 上创建了序列(序列名称是 sequence_1)。现在我希望查询序列以上面的最大值(11) 开始,并将序列减少到 (1)

我的预期结果是

EMP_NO                 EMP_NAME   
---------------------- ---------- 
11                      ram        
10                     mohan      
9                     raju       
8                      santosh    
7                      nikil      
6                      praveen    
5                      manju      
4                      hari       
3                      kumar      
2                     hareesh    
1                     chndra     

为此,请给我询问。在此先感谢

【问题讨论】:

  • “这是我的数据,为我写下我的查询!哦,让我做三明治 plzthanx”

标签: sql sequence sequences


【解决方案1】:
select * from emp order by emp_no desc;

【讨论】:

  • 它不会给出期望的结果,再次查看和检查
  • 你误解了这个问题。
  • @Thilo 你的回答是对的,但在你的查询名称中也改变了我的预期结果是不需要改变名字,只改变 emp_no..
【解决方案2】:

对于 Sql 服务器

Select Row_Number() Over(Order By [EMP_NO] Desc) as Emp_No,
       EMP_NAME  
       from TableName
       Order By [Emp_No] Desc

Sql Fiddle Demo

对于 Oracle Sql 开发人员

Select Row_Number() Over(Order By "EMP_NO" Desc) as "Emp_No",
       "EMP_NAME"  
       from Table1
       Order By "Emp_No" Desc

Sql Fiddle Demo

【讨论】:

  • 该问题用SQL 标记,它指的是标准SQL 不是 到SQL Server。在这种情况下,请避免使用非标准标识符引号。 ([..] 在标准 SQL 中无效)。
  • 你的查询显示错误是 SQL 错误:ORA-00936:缺少表达式 00936。00000 -“缺少表达式” *原因:*操作:
  • @user2775287 你的 rdbms 是什么...sql server , mysql ,oracle or any'other
  • 显示错误 错误报告:SQL 错误:ORA-00936:缺少表达式 00936。00000 -“缺少表达式” *原因:*操作:
  • 你能告诉我你的 RDBMS 是什么吗?
【解决方案3】:
select (select max(emp_no) from emp)-emp_no+1,emp_name from emp

【讨论】:

  • 你的查询显示错误
  • 你的查询显示错误
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多