我想建立一个这样的查询:
SELECT * FROM T1 WHERE Charindex(ANY(SELECT City FROM Cities),T1ADDRESS)>0
据我了解,ANY
运算符不能保留为 SQL 函数参数。那么,替代方案是什么?
假设我想编写一个根据一个输入参数Address返回 1 或 0 的 UDF 。如何在没有for
循环运算符且不SELECT City FROM Cities
按索引访问数组的情况下执行此操作,因为它可以在过程语言中轻松完成?
我想建立一个这样的查询:
SELECT * FROM T1 WHERE Charindex(ANY(SELECT City FROM Cities),T1ADDRESS)>0
据我了解,ANY
运算符不能保留为 SQL 函数参数。那么,替代方案是什么?
假设我想编写一个根据一个输入参数Address返回 1 或 0 的 UDF 。如何在没有for
循环运算符且不SELECT City FROM Cities
按索引访问数组的情况下执行此操作,因为它可以在过程语言中轻松完成?
你试过一个JOIN
吗?
SELECT *
FROM T1
INNER JOIN CITIES
ON T1ADDRESS LIKE '%' + City + '%'
但是不确定性能...
你可能想做这样的事情?
SELECT * FROM T1 WHERE Charindex in (SELECT '%'+City+'%' FROM Cities)
它解决了任何问题,但不是您要求的所有问题。
怎么样,
SELECT
*
FROM
T1
WHERE
EXISTS
(
SELECT City FROM Cities WHERE T1.T1ADDRESS LIKE '%' + City + '%'
)