我有这个疑问删除选项卡位2012
INNER JOIN view AS vw ON vw.[Id] = vw2.[Id]
的问题是在VW2的回报。[ID]末(“2012‘)包含一个标签空间和大众没有(’ 2012' )。所以我试着做
INNER JOIN view AS vw ON vw.[Id] = Replace(vw2.[Id], char(9), '')
不幸的是,比较仍然返回false。我认为它不能在连接上完成,所以我尝试了一个选择查询
SELECT *
FROM database.view2
WHERE REPLACE(Id, char(9), '') = '2012 '
但是,此查询也返回false。有人能向我解释我错过了什么概念或误解?
编辑
您好,感谢大家谁把自己的时间来帮助我在此。看来
vw.[Id] = LTRIM(RTRIM(REPLACE(vw2.[Id], char(9), '')
做到了这一招。在两端都使用REPLACE
,这是由于非常长的查询时间而导致的,这是不必要的。我用LTRIM
和RTRIM
也得到的数据,但从varbinary
回报它不应该需要,我不明白我做错了什么。但它现在很有用,谢谢大家。
这两个Id存储为什么数据类型? – Sturgus
Hi @Sturgus都在nvarchar –
对于你认为以单个标签结束的值,'select vw2。[Id],cast(vw2。[Id] as varbinary(max))'的结果是什么? –