Avatar billede cestrup Nybegynder
26. december 2000 - 20:58 Der er 11 kommentarer

Boolske operatorer i SQL

Kan man ikke bruge boolske operatorer ifm. WHERE i SQL? Fx:

SELECT blabla FROM blabla WHERE (FeltNavn AND EtEllerAndet)<>0

?
Avatar billede mesterlars Nybegynder
26. december 2000 - 21:06 #1
SELECT blabla FROM blabla WHERE FeltNavn <> 0 AND EtEllerAndet <> 0
Avatar billede mesterlars Nybegynder
26. december 2000 - 21:07 #2
eller hvad tænker du på?
Avatar billede erikjacobsen Ekspert
26. december 2000 - 21:09 #3
(FeltNavn AND EtEllerAndet)<>0    er syntaktisk forkert, mens
FeltNavn <> 0 AND EtEllerAndet <> 0    er syntaktisk forkert.
Hvorfor afviser du ham unde begrundelse??
Avatar billede erikjacobsen Ekspert
26. december 2000 - 21:10 #4
Jeg er vist heller ikke helt ... øh ... god i aften. Den nederste er syntaktisk KORREKT...
Avatar billede cestrup Nybegynder
26. december 2000 - 21:13 #5
Jeg har et numerisk felt, hvor hver bit repræsenterer... \'et eller andet\' :) Dét felts indhold vil jeg så gerne allerede i SELECT-sætningen have AND\'et med nogle brugervalg.

Det kunne FOR EKSEMPEL være... Et filarkiv, hvor hver fil har en værdi, \'OS\', hvori hver bit repræsenterer et OS. Lad os sige, at den første bit repræsenterer Win9x og den anden Win2K. Hvis en fil kun er til Win9x, bliver værdien således 1, hvis kun Win2K er det 2, og hvis begge, er det 3.

Brugeren vælger så kun at se filer til bestemte OS\'er, og dette valg - også repræsenteret ved et antal bits samlet i ét tal - vil jeg gerne have AND\'et, så jeg kun får poster ud, hvor mindst én bit er fælles (dvs. noget i retning af \"(tabel.os AND [brugervalg])<>0\").

Man \'kunne\' også kalde det en smutvej uden om den klassiske løsning på mange-til-mange-relationer: En ekstra tabel \'imellem\' de to tabeller, man har i forvejen. Da jeg VED, at tabel 2 kun indeholder et begrænset antal poster (her OS\'er), er dette en langt nemmere løsning.
Avatar billede cestrup Nybegynder
26. december 2000 - 21:17 #6
erikj: sorry, har vist ikke helt fattet, hvordan forum\'et fungerer :) Tilgiv mig - i julens ånd...
Avatar billede erikjacobsen Ekspert
26. december 2000 - 21:35 #7
Ah - bitvis AND i SQL .... ok ... Jamen du er da tilgivet da du har tilført os
et nyt interessant problem ... ;-)  Jeg har det ikke lige present, men
jeg kigger lige efter. Hvilken SQL bruger du: MySql, MsSql, Access,... ??

Til OR kunne du sikkert bruge    FeltNavn+EtEller <> 0  , men det er jo en
AND...
Avatar billede erikjacobsen Ekspert
26. december 2000 - 21:38 #8
Ok, i MySql hedder det

    FeltNavn & EtEllerAndet

for AND, mens du kan bruge

    FeltNavn | EtEllerAndet

for OR. Jeg ved ikke om det virker i andre SQL-er.
Avatar billede cestrup Nybegynder
26. december 2000 - 21:39 #9
Til dette projekt bruger jeg p.t. Access, men skal senere have det til at virke i MSSQL 7.0.
Avatar billede cestrup Nybegynder
26. december 2000 - 21:42 #10
Det virker i hvert fald ikke i Access :(
Avatar billede erikjacobsen Ekspert
26. december 2000 - 22:02 #11
Så er jeg på herrens mark - eller min egen ;-) - for så godt kender jeg
ikke Access, eller MsSql for den sags skyld. Jeg vil meget gerne tro på
at det ikke virker i Access.
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