2011-10-28 15 views
16

ho una dichiarazione presceltaVerificare se un'istruzione SQL SELECT non restituisce alcuna riga

SELECT  QBalance 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 

voglio verificare se questa istruzione restituisce 0 righe. Ho provato ad usare ISNULL e IFNULL ma sembra che mi manchi qualcosa.

+1

Per Null si intende nessuna riga o un valore 'Null' effettivo in QBalance? E cosa ti piacerebbe fare se ottieni null? –

+0

yes by null Significa nessuna riga – Islam

+0

Per aiutarti in futuro, nessuna riga è diversa da null. (Devi modificare questa domanda per passare a Nessuna riga e specificare cosa ti piacerebbe accadere.) –

risposta

1

provare questo:

SELECT  ISNULL(QBalance, 'ReplaceValue') 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 
+0

molto semplice, molto bello –

+6

@Jordan_Walters - Non funziona però. Se non ci sono righe non c'è alcun valore per applicare 'ISNULL' su. –

7
SELECT COUNT(*) 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 

Se si ottiene 0, hai 0. :)

34

Per scoprire se non esistono righe corrispondenti è possibile utilizzare NOT EXISTS. Che può essere più efficiente di contare tutte le righe corrispondenti

IF NOT EXISTS(SELECT * FROM ...) 
BEGIN 
PRINT 'No matching row exists' 
END 
0

potrebbe anche usare un controllo ISNULL esterna?

SELECT ISNULL((
SELECT QBalance 
FROM dbo.CustomerBalance 
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)), 0) 
0

È possibile utilizzare @@ ROWCOUNT. Ad es.

SELECT  QBalance 
FROM   dbo.CustomerBalance 
WHERE  (CustomerID = 1) AND (MarchentID = @MerchantId) 

--This will return no of rows returned by above statement. 
SELECT @@ROWCOUNT 

Otterrete 0 se prima affermazione non restituirà tutte le righe. Puoi anche usare l'istruzione if per verificare che subito dopo la prima dichiarazione. per esempio.

IF @@ROWCOUNT <> 0 
    PRINT 'Select statement is returning some rows' 
ELSE 
    PRINT 'No rows returned' 
Problemi correlati