sql - SQL:连接条件中的 ISNULL
问题描述
有没有其他方法可以写这个。如果 Application 表中的 CreditcardID 为 NULL,则从 Terminatedcreditcard 表中加入 CreditcardID。谢谢,
这是错误:
消息 4104,级别 16,状态 1,第 18 行
无法绑定多部分标识符“TC.CreditCardID”。
代码:
SELECT DISTINCT
prg.Title AS Program, a.Patientid,
a. Applicationid,
PT.MCC,
PT.MerchantName,
PT.MerchantCity, PT.MerchantState,
PT.MerchantZip,
PT.SettlementTransactionID,
CONVERT(DATE, PT.SettlementDate) AS SettlementDate
ABS(PT.Amount) as TransactionAmount
FROM
[dbo].[StagingSettlements] PT
LEFT JOIN
dbo.Application a ON PT.[CustomId] = ISNULL(a.CreditCardId, TC.CreditCardID)
LEFT JOIN
dbo.TerminatedCreditCard TC ON TC.ApplicationId = a.ApplicationId
解决方案
您可以更改加入优先级以获取此信息:
FROM [dbo].[StagingSettlements] AS PT
LEFT JOIN ( dbo.Application AS a
LEFT JOIN dbo.TerminatedCreditCard AS TC on TC.ApplicationId = a.ApplicationId )
ON PT.[CustomId] = ISNULL( a.CreditCardId, TC.CreditCardID )
上面添加括号会导致Application
首先TerminatedCreditCard
评估 join ,然后将结果连接到StagingSettlements
。
推荐阅读
- php - 错误测试 Codeception PhpStorm 和 Docker
- restheart - RESTHeart 实例停止而没有任何错误
- docker - su-exec: setgroups: Operation not allowed - Alpine 容器上的错误
- r - 为什么在 Shiny App R 中使用 shinyalert 时会出现“[object Object]”?
- flutter - 如何在滚动时为 AppBar 的颜色设置动画?
- routes - 将 URL 传递到 Blazor 文件夹下的应用程序文件夹
- python - 在 PySpark 中,我需要在数据框中将列(地图列表)转换为字符串
- sql - 在 SQL 中的动态查询中排名
- linux - 无法打开 matplotlib 生成的 EPS 文件
- mapbox - 在图块中查找世界/地理坐标的像素坐标