2012-04-10 72 views
3

如果以下SQL返回NULL,如何返回1在sql server中增加int 1?

類似的信息(僞代碼):

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

是否有定義爲1的默認值,如果SQL結果爲NULL任何SQL?

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

回答

4

使用ISNULL運算符,如:

ISNULL(your_field, 1) 

嘗試以下操作:

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

感謝您的快速響應,這正是我想要的,再次感謝 – 2012-04-10 11:42:03

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 

說明

返回第一個非空expressio在其論據中。

+0

提及COALESCE(),這在我看來是更好的選擇,因爲它是標準的SQL – fancyPants 2012-04-10 12:55:02