Pan*_*fas 35 sql t-sql sql-server
我该怎么做这种选择:
SELECT *
FROM Street
WHERE StreetName LIKE IN ('% Main Street', 'foo %')
Run Code Online (Sandbox Code Playgroud)
请不要告诉我,我可以使用,OR
因为这些实际上来自查询.
Mar*_*ith 36
有没有合并LIKE
和IN
语法,但你可以使用LIKE
到JOIN
下面到您的查询.
;WITH Query(Result) As
(
SELECT '% Main Street' UNION ALL
SELECT 'foo %'
)
SELECT DISTINCT s.*
FROM Street s
JOIN Query q ON StreetName LIKE q.Result
Run Code Online (Sandbox Code Playgroud)
或者在评论中使用您的示例
SELECT DISTINCT s.*
FROM Street s
JOIN CarStreets cs ON s.StreetName LIKE cs.name + '%'
WHERE cs.Streets = 'offroad'
Run Code Online (Sandbox Code Playgroud)
你在这里没有很多选择。
SELECT * FROM Street Where StreetName LIKE '% Main Street' OR StreetName LIKE 'foo %'
Run Code Online (Sandbox Code Playgroud)
如果这是现有的、更复杂的查询的一部分(这是我得到的印象),您可以创建一个表值函数来为您进行检查。
SELECT * FROM Street Where StreetName IN (dbo.FindStreetNameFunction('% Main Street|foo %'))
Run Code Online (Sandbox Code Playgroud)
我建议使用最简单的解决方案(第一个)。如果它嵌套在一个更大、更复杂的查询中,请将其发布,我们将查看。
归档时间: |
|
查看次数: |
31601 次 |
最近记录: |