如何在SQL中安排数据?

时间:2015-07-22 07:10:09

标签: oracle

我正在使用Oracle SQL Plus

请参考屏幕截图以供参考。

删除列sno=4的数据后,我希望sno的输出按顺序显示,即 1,2,3,4 而不是 1,2 ,3,5-

请建议SQL查询实现相同的目标。

SQL

2 个答案:

答案 0 :(得分:3)

尝试:

select ROWNUM as SNO, NAME,DOJ from company order by SNO

答案 1 :(得分:1)

如果您希望编号是持久的,则需要更新表中所有剩余记录的SNO。

通过删除行,您所做的就是说"第4行不再存在"。如果要将剩余的行重新排列,则需要执行以下操作:

SELECT 
    CASE 
       WHEN sno <= 4 THEN sno 
       ELSE sno-1 
    END AS sno, 
    name,
    doj 
FROM company
ORDER BY sno;

另一种选择,如果你不想改变表本身的内容..但是你希望它能正确显示(特别是对于这个例子)

ClockworkLogger = ActiveSupport::Logger.new("#{Rails.root.to_s}/log/clockwork.log")