我有这个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是灰色的,我有理由相信是导致问题的原因,但是我有什么错过了这个查询才能按需运行吗?在此先感谢,任何帮助表示赞赏。
答案 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))