[英]SQL Replace with wildcards
我慢慢發現替換字符串不適用於通配符。 我擁有大約10個SKU,這10個SKU每個都有大約20個子SKU。
示例:_Example-父SKU Example7bTL-子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
給定您的數據,只是用case
:
select (case when left(sku, 1) = '_' then '_Example' else sku end)
不應僅為了做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%'
這會有所幫助
SELECT SUM(Quantity),'_Example' AS SKU FROM test.dbo.tblSFCOrderTxn GROUP BY CASE SKU WHEN '1' THEN '1' ELSE '2' END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.