簡體   English   中英

SQL用通配符替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM