2017-05-12 10 views
1

Ich ziehe eine Liste der Verkaufsteil aus einer Tabelle und muss das Präfix jedes Teils entfernen. Ich habe versucht, REGEXP_REPLACE() zu verwenden, aber ich bin nicht vertraut mit der richtigen Syntax zu verwenden. Was ich tun möchte, ist, das erste "-" in der Zeichenfolge zu finden und alles davor zu entfernen.entfernen Zeichen vor "-" in einer Zeichenfolge - SQL

Beispiel. CTC-5D6539

Want: 5D6539

SELECT sp.catalog_no AS "Sales Part", 
     sp.catalog_desc AS "Sales Part Description", 
     ifsapp.sales_group_api.get_description(sp.catalog_group) AS "Mfg Id", 
     sp.list_price AS "List Price", 
     ifsapp.inventory_part_api.get_weight_net(sp.contract,sp.part_no) AS "Weight", 
     ifsapp.hb_utility_api.get_sales_price(sp.contract,'102630',sp.catalog_no) AS "Net Price", 
     avail AS "Qty Avail" 
FROM sales_part sp LEFT JOIN available_qty av ON (sp.contract = av.contract) AND (sp.catalog_no = av.catalog_no) 
+0

Welche RDBMS verwenden Sie? –

+0

Wenn Sie auf SQL Server ich eine Kombination aus Recht, Charindex und Len verwenden. Rechts (Spaltenname, Len (Spaltenname) -Charindex (Spaltenname) -1). Möglicherweise müssen Sie einen Groß-/Kleinschreibungsausdruck verwenden, wenn nicht immer ein "-" in jeder Zeichenfolge vorhanden ist. –

+0

@Bee_Riii, 'CharIndex' benötigt mindestens 2 Parameter, 3rd ist optional. 'Charindex ('-', ColumnName)' –

Antwort

0
right(MyColumn, len(MyColumn) - charindex('-', MyColumn)) 

ODER

right(MyColumn, len(MyColumn) - CASE WHEN MyColumn LIKE '%-%' THEN charindex('-', MyColumn) ELSE 0 END) 
0

Hier ist ein Weg, um eine REGEXP_REPLACE() Lösung, die Sie gefragt:

SQL> with tbl(str) as (
    select 'CTC-5D6539' from dual 
    ) 
    select regexp_replace(str, '^(.*?)-') part 
    from tbl; 

PART 
------ 
5D6539 

Die regulärer Ausdruck entspricht null oder mehr e Zeichen vom Anfang der Zeichenfolge bis zum ersten Bindestrich und ersetzt sie durch nichts (löscht sie). Es stoppt am ersten Bindestrich, sodass das Teil Bindestriche enthalten kann.

Verwandte Themen