2012-04-10 15 views
3

以下のSQLがNULLを返す場合は、1を返すにはどうすればよいですか? (擬似コード)のようなSQLサーバでintを1増やす?

何か:

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 

答えて

4

使用ISNULL演算子:

ISNULL(your_field, 1) 

には、次の試してみてください。

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

おかげで、これは、まさに私が欲しい私の意見でより良い選択であるCOALESCEを()、言及してくれてありがとう、再び –

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 

説明

は、最初のNULL以外のexpressioを返します。 nを引数の中に入れます。それは、標準のSQLですので、迅速な対応のための

+0

+1です – fancyPants

関連する問題