将ANY运算符与字符串函数一起使用

时间:2012-09-11 15:15:17

标签: sql sql-server tsql

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

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

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

假设我想编写一个返回1或0的UDF,它依赖于一个输入参数 Address 。如果没有for循环运算符并且没有按索引访问SELECT City FROM Cities数组,我该如何做到这一点,因为它可以在过程语言中轻松完成?

3 个答案:

答案 0 :(得分:1)

你试过JOIN吗?

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

不确定性能......

答案 1 :(得分:0)

你可能想做这样的事情吗?

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

解决了任何问题,但不是你要求的所有问题。

答案 2 :(得分:0)

怎么样,

SELECT 
              * 
    FROM 
            T1 
    WHERE
        EXISTS
        (
            SELECT City FROM Cities WHERE T1.T1ADDRESS LIKE '%' + City + '%' 
        )