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?
Annonceindlæg fra Partnertekst
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
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
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?
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 ...
smid nogle svar, jeg fik det til at spille med en god gang skodscripting :)
det der var så ikke et svar
Computerworld tilbyder specialiserede kurser i database-management