Как выбрать конкретную c строку из столбца? - PullRequest
0 голосов
/ 27 марта 2020

У меня есть столбец, который содержит некоторые значения, подобные этому

PRODUCT CODE
A099  - Mouse Corded Other                  
X001  - Pointing Devices Family - FP&A Only 
W049A - Video Dualcam Other                 
N029  - Joystick PC Other                   
Y089  - Video Other Other                   
P059  - Gaming Wheels - FP&A Only  

Я хочу получить строку или код до -. Возможно ли это?

Таким образом, набор результатов будет выглядеть примерно так

A099
X001
W049A
N029
Y089
P059

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Использование REGEXP_SUBSTR:

SELECT REGEXP_SUBSTR(product_code, '^\S+')
FROM yourTable;

Но на самом деле нам даже здесь не нужно прибегать к регулярным выражениям, функции базовой строки также будут работать:

SELECT SUBSTR(product_code, 1, INSTR(product_code, ' ')-1)
FROM yourTable;

В общем, если вы можете избежать вызова механизма регулярных выражений и использовать вместо этого более простой вариант, это может быть путь к go.

1 голос
/ 27 марта 2020

Использование можно использовать regexp_replace():

select regexp_replace(product_code, '^([^ ]+) ', '\1')

Или regexp_substr():

select regexp_substr(product_code, '^[^ ]+')
...