Avatar billede netro Nybegynder
21. november 2005 - 19:53 Der er 8 kommentarer og
1 løsning

Tjekke om query giver poster

I en SP har jeg et statement, der henter værdier fra fem kolonner. Men hvis der ikke bliver fundet nogle poster, skal der alligevel returneres én post - men med et nul i alle felter.

Select Kol1, Kol2, Kol3, Kol4, Kol5 From Tabel;

Hvis tomt - brug dette statement:

Select 0, 0, 0, 0, 0;

Jeg har prøvet at oprette en cursor til første statement og teste på @@fetch_status, men kan ikke helt få det til at spille.
Avatar billede arne_v Ekspert
21. november 2005 - 20:46 #1
prøv noget a la:

CREATE PROCEDURE nonempty
AS
DECLARE @n INTEGER
SET @n = (SELECT COUNT(*) FROM t1)
IF @n > 0
    SELECT * FROM t1
ELSE
    SELECT 0,0
RETURN
GO
Avatar billede netro Nybegynder
21. november 2005 - 21:54 #2
Ja, det virker, men der er ikke en måde at undgå det ekstra statement på?
Avatar billede netro Nybegynder
21. november 2005 - 21:55 #3
Det er nemlig nogle ret tunge optællinger, der bliver lavet.
Avatar billede arne_v Ekspert
21. november 2005 - 22:04 #4
måske - jeg kan bare ikke lige komme i tanke om det

det optimale må da være at håndtere det i applikationen
Avatar billede netro Nybegynder
21. november 2005 - 22:10 #5
Ok - der skal heller ikke returneres nuller - det var bare for at overskueliggøre det lidt.
Avatar billede arne_v Ekspert
21. november 2005 - 22:13 #6
hvis du kan leve med altid at få de sidste data med kunne du jo lave en UNION
Avatar billede netro Nybegynder
21. november 2005 - 22:14 #7
Den har jeg også tænkt på, men det synes jeg, er ret grimt.

Jeg bruger bare din løsning - tak for hjælpen.
Avatar billede arne_v Ekspert
31. december 2005 - 14:35 #8
så ligger jeg et svar
Avatar billede netro Nybegynder
31. december 2005 - 14:41 #9
Nå ja - godt nytår!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester