在Oracle查询中,您可以使用窗口函数和条件表达式来添加指定的条件,并使具有相同值的行生成相同的序号。

假设您有一个名为"table_name"的表,其中包含一个名为"value"的列。您想要根据"value"列的值生成序号。

以下是一个示例查询,演示如何实现您的要求:

SELECT value, 
       CASE WHEN value = LAG(value) OVER (ORDER BY value) THEN 
            LAG(row_number) OVER (ORDER BY value) 
       ELSE
           ROW_NUMBER() OVER (ORDER BY value)
       END AS row_number
FROM table_name;

在上面的查询中,我们使用了LAG函数来比较当前行的"value"值与前一行的"value"值是否相等。如果相等,我们使用LAG函数获取前一行的序号。否则,我们使用ROW_NUMBER函数生成一个新的序号。

请注意,上述查询中的"table_name"应替换为您实际的表名,"value"应替换为您实际的列名。

希望以上信息对您有所帮助


原文地址: http://www.cveoy.top/t/topic/iSFi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录