Я хочу выбрать дату только из этих столбцов

Я хочу выбрать только дату 170522 ггммдд из этих строк.

PRD.SBR.BATCH.D170522.T011726.

Строка или столбец?? одно строковое значение в столбце?

ScaisEdge 18.04.2019 09:22

имя столбца - source_file_name, мне нужна только дата из этого столбца, а не другие значения

Muhammad Adil 18.04.2019 09:24

тогда дата всегда находится после строки .D?

ScaisEdge 18.04.2019 09:27

Какие могут быть разные форматы вашей файловой строки? Всегда ли это фиксированная длина, всегда ли дата является 4-й частью, всегда ли дата следует за .D?

TheWhiteRabbit 18.04.2019 09:29

да это всегда 4 часть. поэтому я просто хочу выбрать эту дату из этого столбца

Muhammad Adil 18.04.2019 09:30

выберите B.SOURCE_FILE_NAME A.* из STG0_HST_SBR_AIR_SEG A, SBR_SRC_HEADER B, ГДЕ A.SBR_ID=B.SBR_ID

Muhammad Adil 18.04.2019 09:32

вот мой запрос, но когда я выбираю source_file_name, он дает мне полный результат, но я хочу выбрать только дату.

Muhammad Adil 18.04.2019 09:33
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
7
45
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В Oracle вы можете использовать что-то вроде ниже, это даст вам 4-ю часть строки имени вашего файла:

SELECT SUBSTR(FILE_NAME_FIELD, INSTR(FILE_NAME_FIELD, '.', 0, 3) + 1, 7) FROM YOUR_TABLE;

Внутренняя функция INSTR найдет индекс 4-го вхождения точки, а SUBSTR возьмет подстроку с этим индексом с фиксированной длиной 7 (длина части даты).

Результатом ваших выборочных данных будет:

D170522

Вы все еще можете отформатировать это как вам нравится, например, удалить D и привести его к фактической дате...

SUBSTRING_INDEX ЯВЛЯЕТСЯ НЕДЕЙСТВИТЕЛЬНЫМ ИДЕНТИФИКАТОРОМ, ОШИБКА ORACLE.

Muhammad Adil 18.04.2019 09:38

Вы ошибочно отметили вопрос как mysql, поэтому мой ответ основан на этом. Я проверю эквивалент Oracle.

TheWhiteRabbit 18.04.2019 09:41

Я скорректировал свой ответ для Oracle.

TheWhiteRabbit 18.04.2019 09:51

Если строка всегда выглядит так, а вы пометили вопрос тегом Oracle, то

SQL> with test (col) as
  2    (select 'PRD.SBR.BATCH.D170522.T011726.' from dual)
  3  select regexp_substr(col, '\d+') result
  4  from test;

RESULT
------
170522

SQL>

который говорит: дайте мне первое «число» из входной строки.

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