在sql server中将int递增1?

时间:2012-04-10 11:38:50

标签: sql sql-server null

如果以下SQL返回1

,如何返回NULL

像(伪代码):

if sql return NULL value 
then set value to one 
otherwise returning sql result value. 

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

SELECT  Max(iCategoryOrder)+1 
FROM    [IVRFlowManager].[dbo].[tblCategory] 
WHERE   iCategoryLevel = 1

2 个答案:

答案 0 :(得分:5)

选项1

使用ISNULL()

  

<强>描述

     

用指定的替换值替换NULL。

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

选项2

使用COALESCE()

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

<强>描述

     

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

答案 1 :(得分:4)

使用ISNULL运算符,如:

ISNULL(your_field, 1)

请尝试以下操作:

Select ISNULL(Max(iCategoryOrder), 0) + 1  
from [IVRFlowManager].[dbo].[tblCategory]  
where iCategoryLevel = 1