Avatar billede repsak Nybegynder
09. november 2005 - 11:49 Der er 9 kommentarer og
1 løsning

Betinget AND

hej,

jeg hvordan skriver jeg dette? Den udkommenterede sektion skal illustrere den funktionalitet jeg vil opnå - altså kun hvis A.felt er NULL, skal "and B.felt2 = 'test'" evalueres


select *
from A
join B on A.id = B.id
where B.name = 'test'
-- if(A.felt IS NULL)
-- begin
--  and B.felt2 = 'test'
-- end
and B.felt3='test'
Avatar billede arne_v Ekspert
09. november 2005 - 12:08 #1
vil

WHERE a IS NOT NULL OR b = 'xxx'

ikke have samme effekt ?
Avatar billede repsak Nybegynder
09. november 2005 - 12:11 #2
ahh jeg bruger bare en CASE :-D
Avatar billede bromer Nybegynder
09. november 2005 - 13:38 #3
Hvis du gerne vil have alle raekkerne med selvom hvis A ikke er NULL men kun vil have B.felt2 evalueret i NULL tilfaeldet kan du ogsaa lave en:

WHERE (A.felt IS NULL AND b.felt2 = 'test') OR A.felt IS NOT NULL
Avatar billede ldanielsen Nybegynder
09. november 2005 - 13:40 #4
Case er for tungt når det ikke behøves:

SELECT *
FROM A JOIN B ON A.id = B.id
WHERE B.name = 'test' AND
(A IS NOT NULL OR B.felt2 = 'test')
AND B.felt3 = 'test'
Avatar billede bromer Nybegynder
09. november 2005 - 13:54 #5
Saa vidt jeg kan se er helt pointen vel at man gerne vil undersoege B.felt2 hvis a ikke er nul som ale har gjort rigtigt, men man vil bare gerne have raekken vil A.felt ER NULL..
Avatar billede arne_v Ekspert
09. november 2005 - 14:03 #6
a IS NOT NULL OR b = 'xxx'

og

a IS NOT NULL OR (a IS NULL AND b = 'xxx')

har samme effekt
Avatar billede bromer Nybegynder
09. november 2005 - 14:13 #7
Ja det har det, jeg koger.
Avatar billede ldanielsen Nybegynder
09. november 2005 - 18:14 #8
Posten skal med
hvis B.name = 'test'
og B.felt3 = 'test' og enten B.felt2 = 'test' eller A ikke er NULL

Er det ikke rigtigt?
Avatar billede repsak Nybegynder
22. november 2005 - 14:47 #9
Hej, det afgørende er ikke jeres algoritme er 100% korrekt, men mere idéen/princippet bag.
Arne læg et svar. Tak for indlæg :)
Avatar billede arne_v Ekspert
22. november 2005 - 14:49 #10
svar
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