Sql 将任何运算符与字符串函数一起使用
我想构建一个如下的查询:Sql 将任何运算符与字符串函数一起使用,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想构建一个如下的查询: SELECT * FROM T1 WHERE Charindex(ANY(SELECT City FROM Cities),T1ADDRESS)>0 据我所知,ANY运算符不能保留为SQL函数参数。那么,替代方案是什么 假设我想编写一个UDF,它根据一个输入参数地址返回1或0。如果不使用for循环运算符,也不访问按索引从城市中选择城市数组,我该如何执行此操作,因为在过程语言中可以轻松完成此操作?您可能希望执行类似操作 SELECT * FROM T1 WHERE
SELECT * FROM T1 WHERE Charindex(ANY(SELECT City FROM Cities),T1ADDRESS)>0
据我所知,ANY
运算符不能保留为SQL函数参数。那么,替代方案是什么
假设我想编写一个UDF,它根据一个输入参数地址返回1或0。如果不使用
for
循环运算符,也不访问按索引从城市中选择城市
数组,我该如何执行此操作,因为在过程语言中可以轻松完成此操作?您可能希望执行类似操作
SELECT * FROM T1 WHERE Charindex in (SELECT '%'+City+'%' FROM Cities)
它可以解决任何问题,但不是你要求的所有问题。怎么样
SELECT
*
FROM
T1
WHERE
EXISTS
(
SELECT City FROM Cities WHERE T1.T1ADDRESS LIKE '%' + City + '%'
)
您是否尝试过
加入
SELECT *
FROM T1
INNER JOIN CITIES
ON T1ADDRESS LIKE '%' + City + '%'
但是,不确定性能…您不应该在
WHERE
子句中的列上使用函数。@LukasEder T-SQL for SQL Server我想您可能正在寻找LIKE
运算符。请注意LIKE
运算符和UDF对性能都不是很好。如果城市在地址之外正常化,则会很有用。不是,IN运算符会找到精确匹配,但我想找到一个子字符串匹配更新为子字符串问题。虽然这是解决方案的一部分,但我并不了解你的全部问题。