包括WHERE中的完全匹配.. LIKE'%input%'?

时间:2014-08-26 13:22:54

标签: sql-server search wildcard sql-like

查询类似于

SELECT TOP 10 order_number WHERE order_number LIKE '%input%';

假设输入为5,结果将包括order_number 0500。 假设输入为0500,结果将不包括0500,这将是完全匹配,我在结果中需要它。

有任何解决方法吗?

2 个答案:

答案 0 :(得分:0)

DECLARE @Input AS INT    
SET @Input = 5

SELECT TOP 10 order_number 
FROM Table
WHERE CONVERT(VARCHAR,order_number) LIKE '%' + CONVERT(VARCHAR,@Input) + '%';

或者更好地将输入声明为VARCHAR,以便稍后不进行转换:

DECLARE @Input AS VARCHAR(10)
SET @Input = '5'

SELECT TOP 10 order_number 
FROM Table
WHERE CONVERT(VARCHAR,order_number) LIKE '%' + @Input + '%';

答案 1 :(得分:0)

如果值为< 0500'存在于order_number列中,您的WHERE子句如下所示:

WHERE order_number LIKE '%0500%'

然后价值' 0500'将作为一场比赛回来。 LIKE两端的通配符将返回包含通配符之间值的任何内容的true,包括值本身。

通过以下链接,通配符代表"任何0个或更多字符的字符串"

参考:http://msdn.microsoft.com/en-us/library/ms179859.aspx