Avatar billede cdc Novice
22. april 2009 - 11:43 Der er 12 kommentarer og
1 løsning

Kan man i en SQL string undlade at hente en ID

I denne SQL string kunne jeg tænke mig at undlade at hente en specifik ID, kan dette lade sig gøre.

SQL = "SELECT ID, fldNAME FROM nml_tbl_cate ORDER BY fldNAME ASC"

//cdc
Avatar billede softspot Forsker
22. april 2009 - 11:52 #1
Hvad vil du så returnere i stedet for værdien for det specifikke id du ikke ønsker at hente?? Kolonnen er der jo, så den skal have en eller anden værdi (eller NULL)...

Du kunne f.eks. opnå det ved at bruge union (for sql server i det mindste):


SELECT *
FROM (
  SELECT ID, fldNAME
  FROM nml_tbl_cate
  WHERE ID != DET_ID_DER_IKKE_SKAL_RETURNERES
  UNION ALL
  SELECT NULL, fldNAME
  FROM nml_tbl_cate
  WHERE ID = DET_ID_DER_IKKE_SKAL_RETURNERES
) a
ORDER BY fldNAME ASC
Avatar billede cdc Novice
22. april 2009 - 12:02 #2
alle har et ID, men den ene ID skal ikke vises, kun de andre.
Jeg vil ikke returnere noget som helst fra den "skjulte" ID, bare liste de resterende.

Hvis den skjulte ID f.eks. har ID=1 vil din string så være?

SELECT *
FROM (
  SELECT ID, fldNAME
  FROM nml_tbl_cate
  WHERE ID != 1
  UNION ALL
  SELECT NULL, fldNAME
  FROM nml_tbl_cate
  WHERE ID = 1
) a
ORDER BY fldNAME ASC
Avatar billede softspot Forsker
22. april 2009 - 12:08 #3
Ja, min ville se ud som du foreslår, men hvis det blot er et spørgsmål om at filtrere den række fra som har et specifikt id, så kan du bare bruge denne helt basale forespørgsel (hvis vi nu antager at det er rækken med ID = 1 der ikke skal med):

  SELECT ID, fldNAME
  FROM nml_tbl_cate
  WHERE ID != 1
  ORDER BY fldNAME ASC
Avatar billede cdc Novice
22. april 2009 - 12:19 #4
denne virker ikke:
SQL = "SELECT ID, fldNAME FROM nml_tbl_cate WHERE ID !=1 ORDER BY fldNAME ASC"

Syntax error (missing operator) in query expression 'ID !=1'.
Avatar billede kalp Novice
22. april 2009 - 12:58 #5
SELECT ID, fldNAME
  FROM nml_tbl_cate
  WHERE ID <> 1
  ORDER BY fldNAME ASC
Avatar billede cdc Novice
22. april 2009 - 13:55 #6
den tror jeg virker tester den lige igennem
Avatar billede cdc Novice
22. april 2009 - 14:09 #7
kan man lave samme stunt med denne?

SQL = "SELECT nml_tbl_news.ID, fldTITLE, fldSUM, fldNAME, fldPDATE, fldEDATE, fldDATE FROM nml_tbl_news, nml_tbl_admin WHERE (nml_tbl_news.fldAID = nml_tbl_admin.ID) AND (fldACTIVE = 1) AND (fldPDATE <= #" & ASDATE(Month(Date), Day(Date), Year(Date)) & "#) AND NOT (fldEDATE < #" & ASDATE(Month(Date), Day(Date), Year(Date)) & "#) ORDER BY fldPDATE DESC"

smider flere points i puljen hvis det er behov for dette. Smutter nu, og er først tilbage kl. ca. 16:30
Avatar billede softspot Forsker
22. april 2009 - 14:30 #8
Jeg skulle mene det gøres således:

SQL = "SELECT nml_tbl_news.ID, fldTITLE, fldSUM, fldNAME, fldPDATE, fldEDATE, fldDATE FROM nml_tbl_news, nml_tbl_admin WHERE (nml_tbl_news.fldAID = nml_tbl_admin.ID) AND (fldACTIVE = 1) AND (fldPDATE <= #" & ASDATE(Month(Date), Day(Date), Year(Date)) & "#) AND NOT (fldEDATE < #" & ASDATE(Month(Date), Day(Date), Year(Date)) & "#) AND (nml_tbl_news.ID <> 1) ORDER BY fldPDATE DESC"
Avatar billede cdc Novice
22. april 2009 - 19:29 #9
svarer I ikke lige en gang så jeg kan fordele points... tak for hjælpen

//cdc
Avatar billede softspot Forsker
23. april 2009 - 08:20 #10
Velbekomme :-)
Avatar billede softspot Forsker
23. april 2009 - 08:53 #11
Øøh... nu også med svar ;-)
Avatar billede cdc Novice
23. april 2009 - 10:00 #12
hvad med kalp?
Avatar billede softspot Forsker
30. april 2009 - 16:59 #13
Tak for point :-)
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
Kurser inden for grundlæggende programmering

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