3

私は次のようなクエリを持っています

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

&がATMIDATMのような場合にのみ結果を取得しますが、 &の場合は失敗します'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

WHERE 句ではなく、ON 句に LTRIM を入れてみてください。スペースのために異なる一致をすでに破棄している、結合後に発生する場所。

余談ですが、一部の DB は末尾のスペースを実際には存在しないものとして扱うと思います。参考までに。

于 2012-09-20T11:57:51.547 に答える