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

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