MS SQL Excel查询通配符

时间:2015-01-21 12:25:04

标签: sql-server excel wildcard sql-like

我试图在Excel 2007中运行的SQL查询中引入带有通配符的LIKE子句,其中参数来自特定的Excel单元格:

SELECT Elen_SalesData_View.ItemCode, Elen_SalesData_View.ItemDescription, 
Elen_SalesData_View.ItemValue, Elen_SalesData_View.Quantity, 
Elen_SalesData_View.CustomerId, Elen_SalesData_View.CustomerName, 
Elen_SalesData_View.SalesInvoiceId, Elen_SalesData_View.EffectiveDate, 
Elen_SalesData_View.CountryId
FROM SM_Live.dbo.Elen_SalesData_View Elen_SalesData_View
WHERE (Elen_SalesData_View.EffectiveDate>=? And Elen_SalesData_View.EffectiveDate<=?) 
AND (Elen_SalesData_View.CustomerName<>'PROMO') 
AND (Elen_SalesData_View.ItemDescription LIKE '%'+?+'%')

EffectiveDate参数正常运行并按预期恢复数据。但是自从我引入LIKE - 查询运行,但什么也没有返回。

没有通配符也不会返回任何结果(输入完整描述):

(Elen_SalesData_View.ItemDescription LIKE ?)

对通配符或LIKE子句有限制吗?如果是这样,有办法吗? (我无法使用CONTAINS,因为ItemDescription字段不是FULLTEXT

3 个答案:

答案 0 :(得分:0)

查看this reference,它表明%本身是通配符,但它可能取决于您使用的SQL的方言。如果是这种情况,那么您的LIKE子句将只是LIKE '%'但未经测试。

答案 1 :(得分:0)

我刚刚使用(Elen_SalesData_View.ItemDescription LIKE ?)语法让这个工作,然后让包含参数值的单元格包含通配符。如果您不/不能包含通配符,则在单独的单元格中创建公式以将值包装为%字符,并将此单元格用作参数值。

里斯

答案 2 :(得分:0)

我的查询是正确的。实际的电子表格有问题。从头开始重做 - 它有效!

SELECT Elen_SalesData_View.ItemCode, Elen_SalesData_View.ItemDescription, 
Elen_SalesData_View.ItemValue, Elen_SalesData_View.Quantity, 
Elen_SalesData_View.CustomerId, Elen_SalesData_View.CustomerName, 
Elen_SalesData_View.SalesInvoiceId, Elen_SalesData_View.EffectiveDate, 
Elen_SalesData_View.CountryId
FROM SM_Live.dbo.Elen_SalesData_View Elen_SalesData_View
WHERE (Elen_SalesData_View.ItemDescription Like '%'+?+'%') 
AND (Elen_SalesData_View.EffectiveDate>=?) AND (Elen_SalesData_View.EffectiveDate<=?)
AND (Elen_SalesData_View.CustomerName<>'PROMO')