1



使用 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'

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


4

2 回答 2

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
于 2013-08-06T09:38:26.747 回答
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
)
于 2013-08-06T09:59:18.583 回答