J'ai une déclaration choisie
SELECT QBalance
FROM dbo.CustomerBalance
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)
Je veux vérifier si cette instruction renvoie 0 lignes. J'ai essayé d'utiliser l'ISNULL et l'IFNULL mais il me manque quelque chose.
Pour savoir s'il n'existe aucune ligne correspondante, vous pouvez utiliser NOT EXISTS
. Ce qui peut être plus efficace que de compter toutes les lignes correspondantes
IF NOT EXISTS(SELECT * FROM ...)
BEGIN
PRINT 'No matching row exists'
END
SELECT COUNT(*)
FROM dbo.CustomerBalance
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)
Si vous obtenez 0, vous en avez 0. :)
S'il s'agit de SQL Server, essayez @@ ROWCOUNT .
essaye ça:
SELECT ISNULL(QBalance, 'ReplaceValue')
FROM dbo.CustomerBalance
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)
Vous pouvez utiliser @@ ROWCOUNT. Par exemple
SELECT QBalance
FROM dbo.CustomerBalance
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)
--This will return no of rows returned by above statement.
SELECT @@ROWCOUNT
Vous obtiendrez 0 si la première instruction ne renverra aucune ligne. Vous pouvez également utiliser if pour vérifier cela juste après la première déclaration. par exemple.
IF @@ROWCOUNT <> 0
PRINT 'Select statement is returning some rows'
ELSE
PRINT 'No rows returned'
Pourrait également utiliser un contrôle externe ISNULL?
SELECT ISNULL((
SELECT QBalance
FROM dbo.CustomerBalance
WHERE (CustomerID = 1) AND (MarchentID = @MerchantId)), 0)