我如何在(where in ...)命令中使用通配符

时间:2017-02-14 14:00:55

标签: sql-server sql-server-2008

Select id, dim, name, others
from Table1
where dim in ('15-12 a2 _z', '15-12 b2 _z')

表格包含20k值 我在代码中使用_作为外卡,我认为不允许,在这种情况下它被视为字符 有没有办法得到理想的解决方案?

2 个答案:

答案 0 :(得分:1)

WHERE dim LIKE '15-12 a2 %z' OR dim LIKE '15-12 b2 %z'

SQL Server具有最小的通配符使用功能,因此您几乎可以完成所有这些功能。

答案 1 :(得分:0)

%是1个或多个字符的通配符。 _是一个单一的角色......因此,正如罗里已经说过......这表明它有效......

create table #t(
f1 varchar(50)
)

INSERT INTO #t
SELECT '15-12 a2 12z'
UNION all SELECT '15-12 a2 18z'
UNION ALL SELECT'15-12 a2 22z'

SELECT 'PERCENT WILDCARD', * FROM #t 
WHERE f1 LIKE '15-12 a2 %z' OR f1 LIKE '15-12 b2 %z'


SELECT 'UNDERSCORE WILDCARD', * FROM #t 
WHERE f1 LIKE '15-12 a2 __z' OR f1 LIKE '15-12 b2 __z'

DROP TABLE #t