SQL查询JOIN显示为灰色,第3个表为空

时间:2016-01-05 14:27:56

标签: sql sql-server ssms

我有这个SQL查询:

SELECT a.NAME
    ,(CASE 
            WHEN a.TIME = b.schedule
                THEN 0
            ELSE 1
      END ) AS number
INTO C
FROM a
INNER JOIN b
    ON a.NAME = b.NAME;

它会根据需要创建第3个表但该表为空,我向您保证A中的时间列与B中的所有计划列都不匹配。

我注意到JOIN是灰色的,我有理由相信是导致问题的原因,但是我有什么错过了这个查询才能按需运行吗?在此先感谢,任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您在评论中提到该查询适用于left join。这意味着当您尝试执行a.Name = b.Name时,inner join条件失败。

在这种情况下,如果有一个领先的空间,你需要弄清楚为什么他们不能相互匹配。

根据您的评论,您的列不匹配,因此您需要进行一些创意查询以获得您想要的内容(假设您无法修复数据)。这很丑陋并不是一个好方法,但你可以尝试匹配字段的开头,直到分号:

SELECT a.NAME
,(CASE 
        WHEN a.TIME = b.schedule
            THEN 0
        ELSE 1
  END ) AS number
 INTO C
FROM a
INNER JOIN b
 on substring(a.Name,1,CHARINDEX(';',a.Name)) = substring(b.Name,1,CHARINDEX(';',b.Name))