0

我想建立一个这样的查询:

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

据我了解,ANY运算符不能保留为 SQL 函数参数。那么,替代方案是什么?

假设我想编写一个根据一个输入参数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 回答