如何用N喜欢选择

时间:2013-08-06 09:29:12

标签: sql sql-server sql-like

使用MSSQL时,我的项目出现问题
TableName: tbA

ID | COL
---+------
1  | 'abc'
2  | 'azc'
3  | 'xyz'
4  | '123'


程序: pSearch(@input string)

我想选择tbA结合LIKE,IN和OR与理想:

SELECT * FROM tbA a WHERE a.Z IN ('"a%c" OR "x%"')

喜欢它的东西,也许我有一个全文搜索的解决方案,但我不想使用它
我的期望是

ID | COL
---+------
1  | 'abc'
2  | 'azc'
3  | 'xyz'

我希望人们给我一个解决方案或别的东西,谢谢大家。


2 个答案:

答案 0 :(得分:4)

变式1。

SELECT * FROM tbA a WHERE a.Z LIKE 'a%c' OR a.Z LIKE 'x%'

变式2。

DECLARE @tPattern_ TABLE (pat VARCHAR(50));

INSERT INTO @tPattern_ (pat)
SELECT 'a%c' UNION ALL SELECT 'x%'

SELECT DISTINCT a.*
FROM tbA a
INNER JOIN @tPattern_ p ON a.Z LIKE p.pat

答案 1 :(得分:1)

变式3。

DECLARE @temp TABLE (title NVARCHAR(50))
INSERT INTO @temp (title)
VALUES ('a c'), ('x1111'), ('blank')

SELECT t.*
FROM @temp t
WHERE EXISTS(
    SELECT 1
    FROM (VALUES ('a%c'), ('x%')) c(t)  
    WHERE title LIKE t
)