假设我有一个表T
,它有一个属性A
,一个整数。
MAX(T) + 1
如果T
包含 5 而MAX(T) + 2
不是,如何使 SQL 查询返回?
SELECT MAX(a) + CASE WHEN (5 IN (SELECT a FROM t)) THEN 1 ELSE 2 END AS max_plus_something FROM t
SELECT MAX(A) + MIN(CASE A WHEN 5 THEN 1 ELSE 2 END) AS NewA FROM T
我没有机会测试很多案例,但我认为这可以做你想要的。
declare @MinPosNI int;
set @MinPosNI = 1;
select @MinPosNI = case when (A - @MinPosNI) > 0 then @MinPosNI else A + 1 end from T where A > 0 order by A
select @MinPosNI