ねえ、私は次のクエリを持っています:
SELECT REPLACE(REPLACE(REPLACE(REPLACE(tmpTable.Caller_Number,'-',''),'(',''),')',''),' ','')
FROM tmpTable
WHERE EXISTS
(SELECT REPLACE(REPLACE(REPLACE(REPLACE(OnlineAppDetails.addPhone,'-',''),'(',''),')',''),' ','')
FROM OnlineAppDetails
WHERE OnlineAppDetails.addPhone = tmpTable.Caller_Number)
ORDER BY GroupsBy ASC;
レコードを返しません...ただし、このクエリを実行すると、次のようになります。
SELECT *
FROM tmpTable
WHERE EXISTS
(SELECT * FROM OnlineAppDetails
WHERE SUBSTRING(OnlineAppDetails.addPhone,2,3)+'-'+SUBSTRING(OnlineAppDetails.addPhone,7,4)+SUBSTRING(OnlineAppDetails.addPhone,11,4) = tmpTable.Caller_Number)
ORDER BY GroupsBy ASC;
レコードを返します。
phome番号は次のようにフォーマットされます。
for OnlineAppDetails: (xxx) xxx-xxxx
for tmpTable: xxx-xxx-xxxx
私がしているのは、電話番号の-()と[スペース]を取り出して、必要なすべてのレコードが返されることを確認することだけです。両方のテーブルに一致するものがあることを知っているので、-()と[スペース]を削除しても、レコードが返されるはずです。
アップデート
ええと....それが簡単になることを知っていました。
SELECT *
FROM tmpTable
WHERE EXISTS
(SELECT *
FROM OnlineAppDetails
WHERE REPLACE(REPLACE(REPLACE(REPLACE(OnlineAppDetails.addPhone,'-',''),'(',''),')',''),' ','') = REPLACE(REPLACE(REPLACE(REPLACE(tmpTable.Caller_Number,'-',''),'(',''),')',''),' ',''))
ORDER BY GroupsBy ASC;