Avatar billede martens Guru
19. august 2006 - 18:38 Der er 10 kommentarer og
1 løsning

Hvis et felt en en bestemt værdi kan man så udelukke en anden

Jeg er ved at lave en gæstebog, hvor brugeren kan skrive information om dem selv også email. Jeg har lavet et felt der gør det mugligt at vise/skjule email-adressen ( HIDE-EMAIL værdi = ON/OFF ).
Kan jeg med en query lave et udtræk fra en tabel, der tager alle emails med der er markeret med OFF og udelader dem med værdien ON ?

Det skulle gerne være således at alle indlæg vises, også dem, der har valgt at skjule deres email-adresser.

mvh martens
Avatar billede lorentsnv Nybegynder
19. august 2006 - 18:41 #1
Hvis du kun ønsker de records, hvor HIDE-EMAIL er sat til OFF:

Select *
From DinTabel
Where RIDE-EMAIL = 'OFF'
Avatar billede lorentsnv Nybegynder
19. august 2006 - 18:42 #2
Forstår jeg dig rigtig?
Avatar billede lorentsnv Nybegynder
19. august 2006 - 18:43 #3
Unkyld, fejl i selecten:
Select *
From DinTabel
Where [HIDE-EMAIL] = 'OFF'

Er HIDE-EMAIL et databasefelt? Hvordan ser din tabel ud?
Avatar billede kjulius Novice
19. august 2006 - 18:53 #4
Som jeg forstår det, så skal e-mail adressen sættes til null, hvis dit hide felt er on. Så bliver det vel nogenlunde sådan her:

SELECT navn, CASE WHEN hide = '1' THEN NULL ELSE mailadresse END AS MAILADRESSE
FROM dintabel
Avatar billede martens Guru
19. august 2006 - 18:56 #5
Jeg vil have alle brugere med ud, men dem der IKKE ønsker deres email vist, skal have deres email skjult, altså et blankt felt eller værdi af dummyfelt = NULL

Hvis email skjules er værdien = 1 i hide_email
nå her er db-design af tabellen http://www.sallingsundvej.dk/db_tbl_guestbook_.JPG
Avatar billede lorentsnv Nybegynder
19. august 2006 - 19:07 #6
kjulius har vist rigtig løsning, med brug af case.
Avatar billede kjulius Novice
19. august 2006 - 19:09 #7
Okay, så var mit forslag jo næsten spot-on:

SELECT id, navn, CAST(CASE WHEN hide_email = 1 THEN NULL ELSE email END AS CHAR(50) AS email, msn, icq, postnumber, town, ip, os, remark, beboer, hide_email, tid
FROM  tbl_guestbook
Avatar billede kjulius Novice
19. august 2006 - 19:11 #8
Og der mangler selvfølgelig én lille parantes... :-(

SELECT id, navn, CAST(CASE WHEN hide_email = 1 THEN NULL ELSE email END AS CHAR(50)) AS email, msn, icq, postnumber, town, ip, os, remark, beboer, hide_email, tid
FROM  tbl_guestbook
Avatar billede martens Guru
19. august 2006 - 19:17 #9
super !  smid et svar .... takker
Avatar billede kjulius Novice
19. august 2006 - 19:18 #10
Selv tak... :-)
Avatar billede martens Guru
19. august 2006 - 21:05 #11
faktisk meget genialt.... jeg var faktisk lidt i tvivl om det kunne gøres sådan rent SQL-mæssigt, men det kunne det.
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