Sql 具有char索引函数的内部联接

Sql 具有char索引函数的内部联接,sql,sql-server,Sql,Sql Server,好的,我尝试在SQL Server 2008上执行此操作: select * from tb_contato inner join tb_url_contato on tb_contato.RIGHT(linkurl, CHARINDEX('/', REVERSE(linkurl)) - 1) = tb_url_contato.url 这不管用。有什么最好的办法吗 谢谢。RIGHT是sql中的内置函数。我假设linkurl是表tb\u contato中的一列 SELECT * FROM tb

好的,我尝试在SQL Server 2008上执行此操作:

select * 
from tb_contato
inner join tb_url_contato on tb_contato.RIGHT(linkurl, CHARINDEX('/', REVERSE(linkurl)) - 1) = tb_url_contato.url
这不管用。有什么最好的办法吗


谢谢。

RIGHT
是sql中的内置函数。我假设
linkurl
是表
tb\u 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

您可以在不使用
right()
的情况下执行此操作,只需像
一样使用
。我认为逻辑是:

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

      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

您不能为
函数设置别名。将tb_contato.右侧的
更改为右侧的
。如果您需要为
linkurl
字段添加别名,那么就这样做吧……是的,非常感谢@理查德,很乐意帮忙。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。