2012-04-10 3 views
3

Wie kann ich 1 zurückgeben, wenn das folgende SQL NULL zurückgibt?Integer um 1 in SQL Server?

So etwas wie (Pseudocode):

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

Gibt es eine SQL für die Definition Standardwert auf 1, wenn SQL Ergebnis NULL ist?

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

Antwort

4

Verwenden ISNULL Betreiber wie:

ISNULL(your_field, 1) 

Versuchen folgende:

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

danke für die schnelle Antwort, das ist was genau, was ich will, Nochmals vielen Dank –

5

Option 1

Verwenden ISNULL()

Beschreibung

Ersetzt mit dem angegebenen Wiederbeschaffungswert NULL.

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

Option 2

Verwenden COALESCE()

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

Beschreibung

Gibt das erste ungleich NULL expressio n unter seinen Argumenten.

+0

+1 für die Erwähnung von COALESCE(), die meiner Meinung nach die bessere Wahl ist, weil es Standard SQL ist – fancyPants