我想构建一个这样的查询:
SELECT * FROM T1 WHERE Charindex(ANY(SELECT City FROM Cities),T1ADDRESS)>0
据我所知,ANY
运算符不能保留为SQL函数参数。那么,替代方案是什么?
假设我想编写一个返回1或0的UDF,它依赖于一个输入参数 Address 。如果没有for
循环运算符并且没有按索引访问SELECT City FROM Cities
数组,我该如何做到这一点,因为它可以在过程语言中轻松完成?
答案 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 + '%'
)