Oprettet søn. d. 20. marts 2011 kl. 23:11:14

ihtezaz
ihtezaz (12.510 point. Point ude: 4.115)

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.

Skrevet man. d. 21. marts 2011 kl. 08:24:39| #1

joern_h
joern_h (21.495 point)
@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
);

Skrevet man. d. 21. marts 2011 kl. 14:16:20| #2

ihtezaz
ihtezaz (12.510 point)
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.

Skrevet man. d. 21. marts 2011 kl. 15:34:39| #3

joern_h
joern_h (21.495 point)
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
);

Skrevet tir. d. 22. marts 2011 kl. 10:18:37| #4

ihtezaz
ihtezaz (12.510 point)
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.

Skrevet tir. d. 22. marts 2011 kl. 22:40:59| #5

joern_h
joern_h (21.495 point)
Tak for pointsene.
Den nemmeste løsning ville jo være, slet ikke at læse tabel 2.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Oracle testserver/db

Oprettet den 11. maj 2012 kl. 08.23
chalde giver 30 point for svar | Giv et svar »

Select Varray into table

Oprettet den 15. marts 2012 kl. 14.34
thorvall giver 30 point for svar | Giv et svar »

Apps DBA-rådgivning, E-business Suite.

Oprettet den 15. januar 2012 kl. 20.20
steber giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger