如何搜索多个字符串或字符在字段中SQL
我使用SQL Server和我有有两个字段如何搜索多个字符串或字符在字段中SQL
- 名称
- 说明
我想选择一个表所有这些行包含下列字符串
( '$', '%', 'AC CD', 'HJD OIH')
我使用它像这样
select Name , description from table_name
where Description like any (' %$%',' %[%]%','%ac cd%' , '%hjd oih%')
现在
它给人错误,当我运行此
Incorrect syntax near the keyword 'any'.
感谢,
如果你有multiple patterns
来进行搜索,那么它最好创建一个derived table
或temporary table
存储patterns
DECLARE @patterns TABLE (
pattern VARCHAR(20)
);
INSERT INTO @patterns VALUES ('%$%'), ('%[%]%'), ('%ac cd%');
SELECT a.* FROM table_name a JOIN @patterns p ON (a.Description LIKE p.pattern);
如果你有多个列比较只是ON
子句中添加表达
SELECT a.* FROM table_name a JOIN @patterns p ON (a.Description LIKE p.pattern)
OR (a.Column2 like p.pattern);
更新:使用视图
CREATE VIEW PatternSearch
AS
WITH Patterns (Patterns)
AS
(
Select '%Tool%'
union all
Select '%Sale%'
union all
Select '%ac cd%'
)
SELECT a.* FROM table_name a JOIN Patterns p ON (a.Description LIKE p.pattern)
GO
未经测试,但你可以做这样的
但如果想在SQL视图中执行相同的操作。因为我尝试过,但它的错误 – user2193861 2013-03-21 07:36:02
如果你在View中这样做,那么我认为你需要使用CTE – praveen 2013-03-21 07:38:47
你可以编辑你的答案吗? – user2193861 2013-03-21 07:39:37
请检查类似的问题: –
learningloop
2013-03-21 07:22:04