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如果有多个变量,则不能将其存储在单个变量中。您可以创建一个临时表来存储所有的值,但是您仍然需要在它上进行连接。第一个类似于创建一个包含值的派生表。