Avatar billede ihtezaz Praktikant
20. marts 2011 - 23:11 Der er 4 kommentarer og
1 løsning

Select statment

Hej,


Jeg har 2 tabeller tbl1 og tbl2 og jeg har nedenstående
problemstilling.

select case when tbl1.name <> tbl2.name then
end t 
from
(name from tbl1
union
name from tbl2)

Problemmet er hvordan jeg refere til de enkelte under tabeller fra min hoved select statment. ? jeg kan nemlig ikke sige "tbl1.name", men kun bruge "name" i min hoved select statment.
Avatar billede Slettet bruger
21. marts 2011 - 08:24 #1
@ihtezaz: Vil du ikke prøve at skrive lidt mere tydeligt, hvad du ønsker.

Jeg tror at du mener: "Hvis name findes i begge tabeller, så skal det med."

Hvis det er, hvad du ønsker, kan du bruge:

SELECT NAME
FROM (
  SELECT NAME FROM TBL1
  INTERSECT
  SELECT NAME FROM TBL2
);
Avatar billede ihtezaz Praktikant
21. marts 2011 - 14:16 #2
Hej Jørn,

Ja Name findes ikke begge tabeller, men jeg vil være sikker på at jeg kalder name i tbl1 og ikke i tbl2.

select tbl1.name
from
(name from tbl1
union
name from tbl2)

Jeg kan nemlig ikke gør ovenstående, jeg vil gerne have returneret "name" fra tbl1, og hvis ikke den findes skal der retuneres null.
Avatar billede Slettet bruger
21. marts 2011 - 15:34 #3
Hej ihtezaz

Så du vil egentlig have en liste med navne fra begge tabeller. Men kun i det tilfælde at navnet ligger i TBL1, vil du have vist navnet. Ellers skal det være skjult.


SELECT CASE WHEN skjul = 'NEJ' THEN NAME ELSE NULL END NAME
FROM (
  SELECT NAME, 'NEJ' skjul FROM TBL1
  UNION ALL
  SELECT NAME, 'JA' skjul FROM TBL2
);
Avatar billede ihtezaz Praktikant
22. marts 2011 - 10:18 #4
Ok, mente nok det ikke kunne gøres på anden vis, altså på nemmere måde end selv at lave en dummy kolonne som man spørge på.
Havde jo været nice hvis man bare kunne sige

select tbl1.name fra hoved select statment.
Men du får points.
Avatar billede Slettet bruger
22. marts 2011 - 22:40 #5
Tak for pointsene.
Den nemmeste løsning ville jo være, slet ikke at læse tabel 2.
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