2017-03-20 1 views
-1

Ich habe dies in einer Zeile mit einer bestimmten Zeilennummer, ich muss den 2. 67503.55- abholen und 51810.60- und alles andere verwerfen.Ich habe gesucht, aber alle Fragen führen zu gleichen Strings oder sogar nur zwei zu trennenden Strings, aber meine Anforderung deckt breitere Version ab

TOTALS:   228      67503.55-  **67503.55**-  165420.27  217230.87-  **51810.60**-  119314.15- 

Ich versuchte fn_split aber ohne Hilfe verwenden.

+0

'sql' ist nicht genug! Bitte benutzen Sie die Bearbeitungsoption, um Ihre Frage mit dem entsprechenden RDBMS zu markieren (MySQL, SQL-Server, Oracle ... was auch immer ...) – Shnugo

Antwort

0

Wenn Ihre Datenbank SPLIT_TOKEN() unterstützt, können Sie dies versuchen:

WITH 
input(s) AS (
SELECT 'TOTALS: 228 67503.55- 67503.55- 165420.27 217230.87- 51810.60- 119314.15-' 
) 
SELECT 
    SPLIT_PART(s,' ',4) AS first_needed_token 
, SPLIT_PART(s,' ',7) AS second_needed_token 
FROM input; 

first_needed_token|second_needed_token 
67503.55-   |51810.60- 

Ansonsten fragen Sie bitte SPLIT_TOKEN() in Ihrem RDBMS.

0

Dank, habe ich versucht, so etwas wie diese, die als split_token gleiche tut, seinen SQL-Server, die ich benutze, und es bietet keine Unterstützung für diese Funktion: -

col1 = SUBSTRING (Col, 9,14), col2 = SUBSTRING (Col, 27,14), col3 = SUBSTRING (Col, 40,14)

Verwandte Themen