我慢慢发现替换字符串不适用于Wildcards。我所拥有的是大约10个SKU,这10个SKU每个都有大约20个子SKU。
示例:_Example - 父SKU Example7bTL - Child SKU
- 最终结果是将所有子SKU转换为_Example,这样我就可以获得以干净格式销售的单位总和。
我目前的参考资料。
use test
CREATE TABLE #test (
Test int,
BillQty char(300) )
select Quantity, REPLACE (SKU, '%EXAMP%', 'Example') As Sku
from test.dbo.tblSFCOrderTxn
drop table #Test
Raw Data Example---
Quantity SKU
210 EXAMPLE7BOTL-C
42 EXAMPLE4BOTL
30 EXAMPLE1BOTL
28 EXAMPLE12BOTL
100 EXAMPLE7BOTL
97 EXAMPLE4BOTL
29 EXAMPLE7BOTL-C
我想要的是什么
Quantity SKU
536 _Example
我正在使用SQL Server 2012
答案 0 :(得分:0)
根据您的数据,只需使用case
:
select (case when left(sku, 1) = '_' then '_Example' else sku end)
答案 1 :(得分:0)
不应该只是为了做一个sum()来改变数据。我会选择:
SELELCT
CASE WHEN SKU LIKE '%EXAMP%' THEN '_Example' ELSE SKU END AS SKU,
SUM(Quantity) AS Quantity
FROM test.dbo.tblSFCOrderTxn
GROUP BY CASE WHEN SKU LIKE '%EXAMP%' THEN '_Example' ELSE SKU END
ORDER BY 1
如果你真的想改变数据,那就是:
UPDATE test.dbo.tblSFCOrderTxn
SET SKU = '_Example'
WHERE SKU LIKE '%EXAMP%'
答案 2 :(得分:0)
这会很有帮助
SELECT SUM(Quantity),'_Example' AS SKU FROM test.dbo.tblSFCOrderTxn GROUP BY CASE SKU WHEN '1' THEN '1' ELSE '2' END