Я искал, но все вопросы приводят к тому, что одни и те же строки или даже только две строки разделяются, но мое требование охватывает более широкую версию

У меня это в одной строке с определенным номером строки, я должен забрать 2-й 67503.55- а также 51810.60- и откажитесь от всего остального.

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

Я пытался с помощью fn_split но без посторонней помощи.

2 ответа

Если ваша база данных поддерживает SPLIT_TOKEN(), вы можете попробовать это:

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-

В противном случае попросите SPLIT_TOKEN() в вашей РСУБД.

Спасибо, я попробовал что-то подобное, что делает то же самое, что split_token, его sql-сервер, который я использую, и он не поддерживает эту функцию: -

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

Другие вопросы по тегам