You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks与SQL Server中T-SQL JOIN查询结果不一致问题

T-SQL查询在Databricks与SQL Server上的执行结果差异

Databricks SQL执行情况(架构:basedrd)

查询1:返回144行

SELECT DISTINCT
  PSTT.TransactionTypeID
FROM basedrd.TransactionType PSTT
LEFT OUTER JOIN basedrd.PMSTransaction ST
  ON PSTT.TransactionType = ST.TransactionType
WHERE PSTT.TransactionSource = 'Pershing'
OR (PSTT.TransactionSource = '')
AND (ST.SEDOL = 'CASH'
      AND PSTT.IsCashTransaction = 1
      OR ST.SEDOL <> 'CASH'
      AND PSTT.IsCashTransaction = 0)

查询2:无返回行

SELECT DISTINCT
  PSTT.TransactionTypeID
FROM basedrd.PMSTransaction ST
LEFT OUTER JOIN basedrd.TransactionType PSTT
  ON PSTT.TransactionType = ST.TransactionType
    AND (PSTT.TransactionSource = 'Pershing'
      OR PSTT.TransactionSource = '')
    AND (ST.SEDOL = 'CASH'
      AND PSTT.IsCashTransaction = 1
      OR ST.SEDOL <> 'CASH'
      AND PSTT.IsCashTransaction = 0)

SQL Server执行情况(架构:dbo)

查询1:返回145行

SELECT DISTINCT
  PSTT.TransactionTypeID
FROM dbo.TransactionType PSTT
LEFT OUTER JOIN dbo.PMSTransaction ST
  ON PSTT.TransactionType = ST.TransactionType
WHERE PSTT.TransactionSource = 'Pershing'
OR (PSTT.TransactionSource = '')
AND (ST.SEDOL = 'CASH'
      AND PSTT.IsCashTransaction = 1
      OR ST.SEDOL <> 'CASH'
      AND PSTT.IsCashTransaction = 0)

查询2:返回46行

SELECT DISTINCT
  PSTT.TransactionTypeID
FROM dbo.PMSTransaction ST
LEFT OUTER JOIN dbo.TransactionType PSTT
  ON PSTT.TransactionType = ST.TransactionType
    AND (PSTT.TransactionSource = 'Pershing'
      OR PSTT.TransactionSource = '')
    AND (ST.SEDOL = 'CASH'
      AND PSTT.IsCashTransaction = 1
      OR ST.SEDOL <> 'CASH'
      AND PSTT.IsCashTransaction = 0)

两次执行仅数据库架构不同(Databricks使用basedrd,SQL Server使用dbo),但结果存在显著差异:

  • 相同逻辑的查询1在Databricks返回144行,SQL Server返回145行
  • 查询2在Databricks无返回结果,在SQL Server返回46行

内容的提问来源于stack exchange,提问作者Patterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 13:53:35