SQL查询返回最大计数1(如果值为0或-1),否则返回最大计数

时间:2019-08-08 14:54:51

标签: sql sql-server

下面的查询工作正常,我遇到的问题是表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,则应获得最大计数

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