2016-07-15 5 views
1

これはちょっと複雑ですが、うまくいけばうまくいきます。私は、次のことを実行するためのクエリやトリッキーがあるかどうかを調べようとしています。 (私は実際にNetsuiteを使用しているので、正確にはSQLではありませんが、SQLコマンドの基本サブセットをサポートしていますので、可能であれば、それを行う方法を見つけることができます)。後方文字列検索用の後方SQLクエリ

私はテーブルNetsuiteのレコード)には、詐欺チェックとして使用する顧客アドレス用のフィールドがいくつか含まれています。偽の顧客は、偽のスイート番号やその他の接尾辞を追加することによって、同じ偽のアドレスのさまざまな呪文を使用する傾向があります。私たちがしたことは、私たちのテーブルに私たちの記録を設定して、ストリートアドレスの共通部分(「123 Main Street」のような)を付け加えた余分なもの(「スイート12345」のようなもの)を持たないことです。不正注文が行われると、顧客が入力した住所を取得し、テーブルの住所フィールドがそれ自体、注文時に顧客が入力した住所の部分文字列であるレコードを検索しようとします。これは、テーブル内のフィールドに部分文字列が含まれているレコードを検索しようとする典型的な部分文字列検索の逆です。代わりに、私はフィールドがどこかの定数文字列の部分文字列であるテーブル内のレコードを見つけることを試みています。

これは意味がありますか?それは可能ですか、私は自分でいくつかの魔法をしなければなりませんか?

+0

いくつかのサンプルデータと期待される結果を表示し、私たちは魔法を実行します。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

答えて

1

これは私が似たような状況で行ったことです。 2つの不正アドレスがfraud_addressテーブルのstreet_address列にあるとします。私はあなたがパラメータ@newaddressでこれをやっていることを明確にするために仮定します。検証するアドレスがテーブルを持っている場合は、これを適合させることができます。

select * 
    from fraud_addresses f 
where charindex(f.street_address,@newaddress) > 0; 

これは、新しいアドレスの部分文字列として検出されるすべての不正アドレスをリストします。

+0

私はあなたがこれがうまくいくかもしれないと確信しています。私はCHARINDEX関数を見ていましたが、それは一方向にしか働かないと仮定しました。私は最初にこれは私に利用可能な機能ではないと思ったが、実際にはNetsuiteに「INSTR」と呼ばれるものがある。私はSuiteScriptを使ってこれを利用する方法を見つける必要がありますが、私は正しい道にいると思います。ありがとう! – BrianVPS

関連する問題