在sql server中将int递增1?

Shr*_*nil 3 sql sql-server null

1如果以下SQL返回,我该如何返回NULL

像(伪代码)的东西:

if sql return NULL value 
then set value to one 
otherwise returning sql result value. 
Run Code Online (Sandbox Code Playgroud)

如果SQL结果为NULL,是否有用于将默认值定义为1的SQL?

SELECT  Max(iCategoryOrder)+1 
FROM    [IVRFlowManager].[dbo].[tblCategory] 
WHERE   iCategoryLevel = 1
Run Code Online (Sandbox Code Playgroud)

Jam*_*ill 5

选项1

使用 ISNULL()

描述

用指定的替换值替换NULL.

SELECT    MAX(ISNULL(iCategoryOrder, 0))+1 
FROM      [IVRFlowManager].[dbo].[tblCategory] 
WHERE     iCategoryLevel = 1
Run Code Online (Sandbox Code Playgroud)

选项2

使用 COALESCE()

SELECT    MAX(COALESCE(iCategoryOrder, 0))+1 
FROM      [IVRFlowManager].[dbo].[tblCategory] 
WHERE     iCategoryLevel = 1
Run Code Online (Sandbox Code Playgroud)

描述

返回其参数中的第一个非空表达式.