Sql 如何在左连接中使用LEN函数?

Sql 如何在左连接中使用LEN函数?,sql,sql-server,left-join,Sql,Sql Server,Left Join,我需要使用“right([Assetid]、Len([Assetid])-1)”这将删除第一个字母并比较“Positions.CUSIP” 写这篇文章哪种方式更好 而不是像这样写 报告 Report.right([Assetid])、Len([Assetid])-1)=Positions.CUSIP“ 我应该先声明变量并执行“right([Assetid],Len([Assetid])-1)”,但如何在JOIN中使用它呢?尝试以下操作: AssetID是需要与别名一起使用的列 SELECT DI

我需要使用
“right([Assetid]、Len([Assetid])-1)”
这将删除第一个字母并比较
“Positions.CUSIP”

写这篇文章哪种方式更好

而不是像这样写

报告 Report.right([Assetid])、Len([Assetid])-1)=Positions.CUSIP“

我应该先声明变量并执行
“right([Assetid],Len([Assetid])-1)”
,但如何在JOIN中使用它呢?

尝试以下操作:

AssetID是需要与别名一起使用的列

SELECT DISTINCT
        Positions.Issuer_Name
    FROM
     Positions
        LEFT JOIN
        (
            SELECT DISTINCT
              [Assetid]
            FROM
                Report
        ) Report ON
            Report.[Assetid] = Positions.CUSIP //here instead of Report.[Assetid] i need to use `"right([Assetid], Len([Assetid])-1)"`
试试这个:

AssetID是需要与别名一起使用的列

SELECT DISTINCT
        Positions.Issuer_Name
    FROM
     Positions
        LEFT JOIN
        (
            SELECT DISTINCT
              [Assetid]
            FROM
                Report
        ) Report ON
            Report.[Assetid] = Positions.CUSIP //here instead of Report.[Assetid] i need to use `"right([Assetid], Len([Assetid])-1)"`

这取决于您尝试执行的操作,您是希望根据该点的
right()
值进行比较,还是希望
right()
值优先于:

SELECT DISTINCT
    Positions.Issuer_Name
FROM
 Positions
    LEFT JOIN
    (
        SELECT DISTINCT
          [Assetid]
        FROM
            Report
    ) Report ON
        right(Report.[Assetid], Len(Report.[Assetid])-1) = Positions.CUSIP


这取决于您尝试执行的操作,您是希望根据该点的
right()
值进行比较,还是希望
right()
值优先于:

SELECT DISTINCT
    Positions.Issuer_Name
FROM
 Positions
    LEFT JOIN
    (
        SELECT DISTINCT
          [Assetid]
        FROM
            Report
    ) Report ON
        right(Report.[Assetid], Len(Report.[Assetid])-1) = Positions.CUSIP


是的,第一次尝试就是我想要的。我可以声明一个变量并在其中选择Assetid吗?THANKS@ashuthinks如果有多个变量,则不能将其存储在单个变量中。您可以创建一个临时表来存储所有的值,但是您仍然需要在它上进行连接。第一个类似于您正在创建一个包含值的派生表。是的,第一次尝试就是我想要的。我可以声明一个变量并在其中选择Assetid吗?THANKS@ashuthinks如果有多个变量,则不能将其存储在单个变量中。您可以创建一个临时表来存储所有的值,但是您仍然需要在它上进行连接。第一个类似于创建一个包含值的派生表。