1

電話番号がテーブル内に見つかった場合に顧客の ID を追加する SQL スクリプトに取り組んでいます。

以下は私のコードのスニペットです:

CREATE TABLE #Customers ( AccountNumber nvarchar(20))
CREATE TABLE #Phones ( Number nvarchar(30))

INSERT INTO #Customers (AccountNumber)
    SELECT AccountNumber
    FROM CustomerTable
    WHERE 
        (CustomerTable.PhoneNumber IN (SELECT DISTINCT Number FROM #Phones))
        OR
        (CustomerTable.PhoneNumber2 IN (SELECT DISTINCT Number FROM #Phones))
GO

ただし、これらのステートメントを使用すると、正確なレコードがテーブル内で一致しているかどうかしか確認できません。例: Phones.Number にレコード '123456' があり、CustomerTables.PhoneNumber にレコード '123456 7' がある場合、このレコード レコードは、番号が含まれていても取得されません。

同様のロジックを LIKE 演算子に適用するために、現在のスニペットにできる変更はありますか?

4

3 に答える 3

1
SELECT AccountNumber
FROM CustomerTable c 
join #Phones p
  on c.PhoneNumber like p.Number + '%' OR c.PhoneNumber2  like p.Number + '%'
于 2018-06-22T15:22:07.117 に答える