0

次のようなクエリを作成したい:

SELECT * FROM T1 WHERE Charindex(ANY(SELECT City FROM Cities),T1ADDRESS)>0

私が理解しているように、ANY演算子はSQL関数の引数としてとどまることはできません。それで、代替案は何ですか?

1 つの入力引数Addressに応じて 1 または 0 を返す UDF を書きたいとします。手続き型言語で簡単に実行できるため、forループ演算子を使用せず、インデックスで配列にアクセスせずにこれを行うにはどうすればよいですか?SELECT City FROM Cities

4

3 に答える 3

1

試しましたJOINか?

SELECT * 
FROM T1
INNER JOIN CITIES
    ON T1ADDRESS LIKE '%' + City + '%'

ただし、パフォーマンスについてはよくわかりません...

于 2012-09-11T16:00:51.110 に答える
0

あなたはこのようなことをしたいかもしれませんか?

SELECT * FROM T1 WHERE Charindex in (SELECT '%'+City+'%' FROM Cities)

これはあらゆる問題に対処しますが、あなたが求めたすべてではありません。

于 2012-09-11T15:20:14.357 に答える
0

どうですか、

SELECT 
              * 
    FROM 
            T1 
    WHERE
        EXISTS
        (
            SELECT City FROM Cities WHERE T1.T1ADDRESS LIKE '%' + City + '%' 
        )
于 2012-09-11T15:25:07.020 に答える