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

根据年份重置序列,而不是最小值或最大值

顾嘉良
2023-03-14
问题内容

创建一个将根据年份重置的序列。考虑以9位数开头000000001且最大为999999999的序列。

假设Date为30/12/2017,seq为000012849,所以当日期为01/01/2018时,我希望seq为000000001。


问题答案:

创建一个定期计划作业,该作业在每年的1月1日午夜重新设置顺序。

类似于(假设您有YOUR_SCHEMA.RESET_ANNUAL_SEQUENCE执行重置的过程):

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
    job_name             => 'reset_annual_sequence_job',
    job_type             => 'PLSQL_BLOCK',
    job_action           => 'BEGIN your_schema.reset_annual_sequence; END;',
    start_date           => ADD_MONTHS( TRUNC( SYSTIMESTAMP, 'YY' ), 12 ),
    repeat_interval      => 'FREQ=YEARLY; BYDATE=0101;', 
    enabled              =>  TRUE,
    comments             => 'Annual sequence reset'
  );
END;
/


 类似资料:
  • 我需要在熊猫数据帧中找到本地最大值和最小值,起初看起来这和熊猫找到本地最大值和最小值是一样的问题,但建议的解决方案似乎都不正确。 我想确定局部最小值和最大值,而不是平台值。正确的标识是: iloc 2或3中的最大值(无所谓) iloc 7中的最小值 一个解决方案是开始写循环和如果/其他,但它变得越来越丑陋...我猜可能有更简单的解决方案,使用熊猫,我缺乏一些知识,任何帮助都将不胜感激。 我对Pyt

  • 问题内容: 这是我正在谈论的简化示例: 为了这个问题,假设每个学生至少记录了一个考试结果。 您将如何选择每个学生以及他们的最高分数? 编辑 :…和该记录中的其他字段? 预期产量: 欢迎使用所有类型的DBMS进行回答。 问题答案: 回答已编辑的问题(即也获取关联的列)。 在Sql Server 2005+中,最好的方法是将等级/窗口函数与CTE结合使用,如下所示: 对于符合ANSI-SQL的解决方案

  • 问题内容: 我有下表。 我想选择的每一个具有最低。 当我得到所需的内容后,一旦添加了列,就需要将其也添加到GROUP BY子句,当我需要的只是每种类型的最低要求时,它返回所有行。 问题答案: 在标准SQL中,这可以使用窗口函数来完成 但是,Postgres具有运算符,该运算符通常比带有窗口函数的相应解决方案要快:

  • 我有一个存储时间跨度数据的表。该表的架构类似于: 我试图计算出每个记录id的开始和结束日期,即最小开始日期和最大结束日期。StartDate不可为null,所以我不需要担心这个问题,但我需要MAX(EndDate)来表示这是当前正在运行的时间跨度。 重要的是,我要保持EndDate的NULL值,并将其视为最大值。 最简单的尝试(如下)无法突出MIN和MAX将忽略NULLS的问题(来源:http:/

  • 我试图找到矩阵中每列的最小值和最大值,但我当前的代码运行不正确。我试图把最小值放在一个新矩阵的第一行,最大值放在下一行,并对每一列这样做。任何帮助都将不胜感激,谢谢!

  • 问题内容: 如何构造一个mySQL查询以基于最大值删除行。 我试过了 但是有错误? 问题答案: 采用: 请注意,如果存在重复,则将删除 所有 具有该值的行。 关于1093错误的愚蠢之处在于,您可以通过在自引用之间放置一个子查询来解决它: 说明 MySQL仅在使用&语句时检查是否存在正在更新的同一表的一级子查询。这就是为什么将其放在第二级(或更深层)的子查询替代项中的原因。但这只是检查子查询- JO