2016-06-30 8 views
-2

Ok so versuche ich, diese 2008 auf SQL Server zu tun:innere Verknüpfung mit char Indexfunktion

select * 
from tb_contato 
inner join tb_url_contato on tb_contato.RIGHT(linkurl, CHARINDEX('/', REVERSE(linkurl)) - 1) = tb_url_contato.url 

Dies funktioniert nicht. Irgendwelche Vorschläge für den besten Weg, das zu tun?

Danke.

+0

Sie können nicht die 'right' Funktion alias. Ändern Sie 'on tb_contato.RIGHT' in' on right'. Wenn Sie das "linkurl" -Feld alias machen müssen, dann tun Sie das ... – sgeddes

+0

yup, vielen Dank! – Richard

Antwort

1

RIGHT ist eine integrierte Funktion in SQL. Und ich nehme an linkurl ist eine Spalte in der Tabelle tb_contato.

SELECT * 
FROM tb_contato 
INNER JOIN tb_url_contato 
ON RIGHT(tb_contato.linkurl, CHARINDEX('/', REVERSE(tb_contato.linkurl))-1) = tb_url_contato.url 
+0

perfekt! Danke!!! – Richard

+0

@Richard, glücklich zu helfen. Wenn diese Antwort oder eine andere Lösung Ihr Problem behoben hat, markieren Sie es als akzeptiert. – ydoow

1

Sie können dies tun, ohne right(), nur like verwenden. Ich denke, die Logik ist:

SELECT * 
FROM tb_contato INNER JOIN 
    tb_url_contato 
    ON tb_contato.linkurl LIKE '%/' + tb_url_contato.url 
0

Try This

 SELECT * FROM (SELECT * ,RIGHT(linkurl, COALESCE(NULLIF(CHARINDEX('/', REVERSE(linkurl)), 0) - 1, LEN(linkurl))) AS NEWCOL FROM tb_contato) AS TA inner join tb_url_contato TB on TA.NEWCOL = TB.url 
Verwandte Themen