2010-08-24 3 views
0

concernant la structure de la chasse aux oiseaux:requête simple SELECT échoue

CREATE TABLE [tblEntityLogs] 
(
    [EntityLogId] [int] IDENTITY(1,1) NOT NULL, 
    [EntityCountCurrent] [float] NOT NULL, 
    ... 
) 

Lors de l'exécution de la requête sous je reçois une ligne vide de retour ...

DECLARE @N FLOAT 
SET @N = 666 

SELECT ISNULL(tblEntityLogs.EntityCountCurrent, @N) AS EntityCountCurrent 
FROM tblEntityLogs 

Et si je fais:

SELECT tblEntityLogs.EntityCountCurrent FROM tblEntityLogs 

La même chose se produit. Je ne reçois même pas NULL.

Remarque: Le tableau est vide.

Répondre

4

Si la table est vide, vous n'obtiendrez rien - c'est par conception.

Bien que, je ne sais pas pourquoi vous l'utiliseriez/testiez avec IsNull car votre structure de table n'autorise pas Nulls.

+0

Étrange. Et oui? tu as raison. Au milieu de ma frustration, j'ai jeté un 'ISNULL()' au hasard :) Merci – roosteronacid

4

Voici comment il est supposé fonctionner. Si vous aviez 5 lignes qui étaient toutes NULL dans le tableau, vous obtiendriez cinq lignes 666.

5

Il ne manque pas, il ne retourne aucune ligne car il n'y a pas de lignes à retourner. Vous obtiendriez NULL de retour s'il y avait une ligne avec EntityCountCurrent définie sur NULL (ce qui ne peut pas arriver de toute façon car cette colonne est définie comme NOT NULL).