Мне нужно получить определенную часть из строки.Как получить определенную часть из строки в SQL
В следующем примере поле POSITION
содержит A-
блок, блок M-0000000359
и, наконец, блок справа от /
.
Теперь мне нужно заполнить полный номер справа от /
, и если есть ,
, то можно использовать только полный номер до запятой.
Так что, если следующий выход POSITION
будет A-M-0000000359/10
или A-M-0000000359/10,10
то результат мне сейчас нужно в обоих случаях 10
.
SQL
SELECT POSITION
,SUBSTRING((REPLACE(POSITION, SUBSTRING((POSITION), 1, CHARINDEX('/', (POSITION), 1)), '')), 1, CHARINDEX('/', (POSITION), 0)) AS TRIM_A
,SUBSTRING((REPLACE(POSITION, SUBSTRING((POSITION), 1, CHARINDEX('/', (POSITION), 1)), '')), 0, CHARINDEX(',', ((REPLACE(POSITION, SUBSTRING((POSITION), 1, CHARINDEX('/', (POSITION), 1)), ''))), 1)) AS TRIM_B
,*
FROM ORDER
Выход
POSITION |TRIM_A|TRIM_B
---------------------|------|------|
A-M-0000000359/1 |1
---------------------|------|------|
A-M-0000000359/1,10 |1,10 1
Ваши примеры показать, что вы хотите в фиксированных позициях. Это правда в целом? –
Пример (SQL & Output), где я застрял в данный момент. Результат, который вы видите, работает, если это отвечает на ваш вопрос. – oldsport
Итак, каков ваш вопрос о вашем текущем коде? – scsimon