3

我有类似的查询

Select *
From ReportData L 
Left Join ATM A On L.ATMID=A.ATM 
Where L.ATMID=A.ATM AND L.IssuerNetwork < > '0000'

ATMID它仅在&ATM类似于'TWAW1800 '&'TWAW1800 '但失败时'TWAW1800'&时检索结果'TWAW1800 '

我试过的是

Select *
From ReportData L 
Left Join ATM A On L.ATMID=A.ATM 
Where LTRIM(RTRIM(L.ATMID))=LTRIM(RTRIM(A.ATM)) AND L.IssuerNetwork < > '0000'

但这对我不起作用..

4

2 回答 2

7

将其LTRIM()/RTRIM()放在,JOIN然后在加入时去除空格:

SELECT *
FROM ReportData L 
LEFT JOIN ATM A 
  ON LTRIM(RTRIM(L.ATMID))=LTRIM(RTRIM(A.ATM))
WHERE L.IssuerNetwork <> '0000'
于 2012-09-20T11:54:03.357 回答
3

尝试将 LTRIM 放在 ON 子句中,而不是 WHERE 子句中。加入后发生的位置,由于空格已经丢弃了不同的匹配项。

顺便说一句,我认为一些数据库将尾随空格视为实际上并不存在。仅供参考。

于 2012-09-20T11:57:51.547 回答