下面的查询工作正常,我遇到的问题是表A我在该表中有一个默认值-1,所以它返回0,但是我想要一个if或case条件,可以检查是否最大值计数为-1,则应从1开始,否则取最大计数
SELECT column1, column2,column3,
coalesce((SELECT max(columnid)
FROM tableA),1)
+ row_number() OVER (ORDER BY user) columnid
FROM (SELECT columnid,
column3,column2,
row_number() OVER (PARTITION BY column3
ORDER BY user) rn
FROM tableB) t
WHERE rn = 1
示例:假设表中的最大计数为-1,这是其默认值,则应从0开始计数 如果该值不为-1,则应获得最大计数
答案 0 :(得分:0)
您可以更改
coalesce((SELECT max(columnid)
FROM tableA),1)
收件人:
CASE WHEN coalesce((SELECT max(columnid)
FROM tableA),1) =-1 THEN 0 ELSE coalesce((SELECT max(columnid)
FROM tableA),1) END