Joe*_*man 2 sql sql-server-2008
我有SQL语句:
SELECT ASIN, Date, DateSoldActualized, FNSKU, ItemName, MaxShipmentDateAllSkus, MaxShipmentDateThisSKU, MerchantID, MerchantSKU, SoldIn30Days, TotalQty
FROM AmazonSKUs
WHERE (MerchantSKU LIKE @MerchantSKU)
Run Code Online (Sandbox Code Playgroud)
我有一个包含20,000条记录的大型数据库.这些记录中的72个具有以MEA_开头的MerchantSKU.当我用MEA_%搜索时,我什么都没得到.我有大约100条记录以ACD_开头.当我通过ACD_%查询时,我得到10条记录我是否使用我正在编写的程序来显示此数据或直接对我的数据库运行查询.
要执行此操作,我从GUI调用一个函数:
s.createdisplay(txtSellerSku.Text.Trim()+"_%");
它反过来调用这个函数构建了几个List<string>
:
inventory.AmazonSKUsDataTable builder = i.GetbySKU(sellersku);
从我的bll调用此函数实际运行我的查询:
[System.ComponentModel.DataObjectMethodAttribute
(System.ComponentModel.DataObjectMethodType.Select, false)]
public inventory.AmazonSKUsDataTable GetbySKU(string SKU)
{
return Adatper.GetbySKU(SKU);
}
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题,为什么这个查询不起作用?
编辑:以下是我的数据行
MerchantID MerchantSKU Date TotalQty SoldIn30Days ASIN SELECT ASIN, Date, DateSoldActualized FNSKU ItemName MaxShipmentDateAllSkus MaxShipmentDateThisSKU ItemName Rank Price Amazon
A1B7M9EQGNCLQA MEA_89930_C6.39 6/3/2011 6:35:07 PM 47 6/3/2011 6:35:07 PM 0 B0020OWVDS 6/3/2011 6:35:07 PM 6/3/2011 6:35:07 PM X0006J5C9F NULL NULL Medela TheraShells Breast Shells #89930 [Baby Product] 8,902 Baby 24.99 F
A1B7M9EQGNCLQA MEA_89973_C2.60 5/10/2011 12:00:00 AM 69 5/15/2011 12:00:00 AM 37 B00006FWVO 5/15/2011 12:00:00 AM 5/8/2011 12:00:00 AM B00006FWVO NULL NULL Medela Disposable Nursing Bra Pads - 30-pk [Baby Product] 2,603 Baby 9.07 F
A1B7M9EQGNCLQA MEA_89974 5/10/2011 12:00:00 AM 3 5/15/2011 12:00:00 AM 52 B00006FWVR 5/15/2011 12:00:00 AM 5/2/2011 12:00:00 AM B00006FWVR NULL NULL Medela Disposable Nursing Bra Pads - 60-pk. [Baby Product] 734 Baby 12.01 F
该_
字符是SQL中的"替换为一个任意字符"通配符 - 就像?
在DOS/Windows中一样.
尝试做.. WHERE MerchantSKU LIKE 'MEA%'
- 你现在得到什么回报?
如果必须使用下划线,请尝试将其放入方括号中:
.. WHERE MerchantSKU LIKE 'MEA[_]%'
Run Code Online (Sandbox Code Playgroud)
更新:我无法重现您的问题 - 至少在SQL Server级别上没有 - 请自行尝试:
DECLARE @merchant TABLE (MerchantID VARCHAR(50), MerchantSKU VARCHAR(50), TotalQty INT)
INSERT INTO @merchant
VALUES('A1B7M9EQGNCLQA', 'MEA_89930_C6.39', 47),
('A1B7M9EQGNCLQA', 'MEA_89973_C2.60', 69),
('A1B7M9EQGNCLQA', 'MEA_89974', 3),
('X1B7M9EQGNCLQA', 'MEB_89930_C6.39', 4711),
('X1B7M9EQGNCLQA', 'MEF_89930_C6.39', 42),
('X1B7M9EQGNCLQA', 'MEZ_89930_C6.39', 7)
SELECT *
FROM @merchant
WHERE MerchantSKU LIKE 'MEA[_]%'
Run Code Online (Sandbox Code Playgroud)
根据我的测试,找到并返回正确的行.我怀疑代码中有些东西实际上调用你的SQL查询是"腥"并导致这些问题 - 这样的SQL语句是有效的并且有效.
归档时间: |
|
查看次数: |
134 次 |
最近记录: |