Avatar billede Søren Bech Morsing Praktikant
14. november 2006 - 11:16 Der er 7 kommentarer og
1 løsning

LIKE sammenligning af 2 felter fra 2 tabeller

Jeg skal lave denne betingelse (hvor feltet i table2 kun indeholder en del af feltet i table1):

WHERE table1.fullname LIKE '%table2.firstname%'

Kan man det? Normalt ville det jo være:
WHERE table1.fullname LIKE '%" & variabel & "%'
Avatar billede teepee Nybegynder
14. november 2006 - 12:05 #1
Det er vist ikke tilladt. Du må vist lave en cursor og loope for hver forekomst i table2.firstname
Avatar billede dr_chaos Nybegynder
14. november 2006 - 12:10 #2
du kan gøre noget i denne stil:
SELECT TOP 10 * FROM tabel1 s
JOIN tabel2 v ON s.Kundeid like '%'+CONVERT(varchar(10),v.kundeid)+'%'
Avatar billede kjulius Novice
14. november 2006 - 19:46 #3
Måske kan du gøre det sådan?

SELECT DISTINCT t1.*
FROM table1 t1, table2 t2
WHERE t1.fullname LIKE '%' + t2.firstname + '%'
Avatar billede teepee Nybegynder
15. november 2006 - 09:26 #4
dr_chaos og kjulius: er det noget I har prøvet eller gætter I bare?
Avatar billede dr_chaos Nybegynder
15. november 2006 - 09:29 #5
jeg kørte min sql på 2 tabeller i min database.
Så det jeg har lavet virker.
Avatar billede Søren Bech Morsing Praktikant
15. november 2006 - 18:40 #6
Bare til info så fandt jeg lige ud af at MID ikke virker i MS SQL, men det gør LEFT og RIGHT, så sammen laver de jo en MID
SELECT LEFT(RIGHT(feltnavn, 10), 5) AS feltnavn
- giver 10-5. sidste tegn i feltnavn.

Jeg har løst ovenstående problem ved at tilføje feltet firstname i table1 (split på fullname og første del ned i feltet).

Læg svar - ellers lukker jeg
Avatar billede kjulius Novice
15. november 2006 - 20:16 #7
MID bruges vist mest i Access, som jo har det med at "låne" funktioner fra VBA, i stedet for at implementere de officielle SQL funktioner.

MS SQL (og de fleste databaser, som følger standarderne) har i stedet en funktion, der hedder SUBSTRING, som opfører sig nøjagtigt ligesom MID i Access.

Min kommentar var med vilje udstyret med et spørgsmålstegn, for jeg har ikke afprøvet det (det var jo det du skulle gøre). Men på trods af det, er der tale om såkaldt "educated guessing", altså et erfaringsbaseret gæt.

Men jeg forventer ikke at få point for den "indsats"...
Avatar billede dr_chaos Nybegynder
16. november 2006 - 07:57 #8
når du ikke brugte min løsning skal jeg ikke have points.
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