Avatar billede dex_dexter Nybegynder
22. marts 2006 - 10:33 Der er 7 kommentarer og
1 løsning

subquery, where fra "parent" query

jeg har brug for at lave noget ala :

select a,b,c,(select andetfelt from tabel2 where substring(a,0,4) = 'den anden tabels a) as d from tabel1

men den kan jeg ikke helt finde hovede og hale i hvordan jeg skal gøre.

jeg kunne lave en join, hvis det ikke havde været for det faktum at det ene felt er et substring af et andet :(

har i nogen idéer?
Avatar billede ldanielsen Nybegynder
22. marts 2006 - 11:27 #1
Du skal bare specificere det:


SELECT a, b, c, (SELECT andetfelt FROM tabel2 WHERE SUBSTRING(a, 0, 4) = tabel1.a) AS d FROM tabel1
Avatar billede kjulius Novice
22. marts 2006 - 19:56 #2
Jeg ville jo nok gøre det med en ganske alm. LEFT JOIN i stedet:

SELECT t1.a, t1,b, t1.c, t2.andetfelt as d
FROM tabel1 t1
LEFT JOIN tabel2 t2 ON SUBSTRING(t1.a, 0, 4) = t2.a
Avatar billede kjulius Novice
22. marts 2006 - 19:57 #3
Må startpos i en SUBSTRING i det hele taget være 0 i MS SQL? Eller er det bare en fejl?
Avatar billede ldanielsen Nybegynder
23. marts 2006 - 09:17 #4
kjulius > At startpos er 0 fremkalder ikke en fejl, men giver den virkning at strengen der returneres bliver kortere:

SUBSTRING('Tekst', 1, 3)
- giver 'Tek' som forventet; "start ved første og giv mig 3 bogstaver"

SUBSTRING('Tekst', 0, 3)
- 'Te', man kunne sig at den "starter et bogstav før starten og giver 3 bogstaver derfra: <ingenting>, 'T' og 'e'

dex_dexter > Man kan faktisk godt joine på en SUBSTRING ...
Avatar billede dex_dexter Nybegynder
18. juni 2006 - 21:01 #5
smid nogle svar, jeg fik det til at spille med en god gang skodscripting :)
Avatar billede ldanielsen Nybegynder
19. juni 2006 - 12:43 #6
Svar :o)
Avatar billede dex_dexter Nybegynder
19. juni 2006 - 12:46 #7
det der var så ikke et svar
Avatar billede ldanielsen Nybegynder
19. juni 2006 - 12:52 #8
Åh, nu igen ...
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