oracle 查詢中添加指定的條件如果某列的值相等讓他們生成一樣的序號
在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 著作权归作者所有。请勿转载和采集!