MS SQL Excel 查询通配符

MS SQL Excel Query wildcards

我试图在 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 - 查询运行,但 return 什么都没有。

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

(Elen_SalesData_View.ItemDescription LIKE ?)

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

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

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

里斯

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

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')