Raj 0203 Ответов: 2

Как извлечь все данные между двумя символами строки в SQL ?


Привет Ребята,

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

Например, у меня есть данные в столбце data like,

"ааааа( bb (asdads) bbb )"

И мне нужен выход типа,
-ааааа"

Подсказка: нужно удалить все данные между символами "(" & ")"

Может ли кто-нибудь помочь мне получить этот вывод в SQL.

Что я уже пробовал:

Этот запрос не работает должным образом, как я ожидаю,

SELECT SUBSTRING('aaaaa$bbb$bb$ccccc$ddddd',
CHARINDEX('$','aaaaa$bbbbb$ccccc')+1, 
CHARINDEX('$','aaaaa$bbbbb$ccccc',CHARINDEX('$','aaaaa$bbbbb$ccccc')+1) -
CHARINDEX('$','aaaaa$bbbbb$ccccc')-1) as My_String 

PIEBALDconsult

SQL не является хорошим выбором для строковых операций.
Я предпочитаю использовать функцию CLR, которая использует регулярное выражение.

Graeme_Grant

Поиск в Google-это ваш друг: Как-мне-извлечь-все-данные-между-двумя-символами[^]

2 Ответов

Рейтинг:
13

Atlapure Ambrish

Ниже приведен запрос..

Объявите @String NVARCHAR(max) ='aaaaa( bb (asdads) bbb )'

Выберите LEFT(@String, CHARINDEX('(', @String)-1) +" +
Право(@строка, функция charindex(')', обратный(@строк))-1)


Raj 0203

Это был потрясающий Амбриш...ты спас мне жизнь... Спасибо вам ооочень большое

Atlapure Ambrish

Это мое удовольствие!

Рейтинг:
0

Eshika Roy

Suppose you have name column in table abc and values are-
"aaaaa( bb (asdads) bbb )".

Now I want to split only aaaaa from that table. 
So the query is 

select name,SUBSTRING_INDEX(name,'(',1) AS part1 from abc;


Member 13913124

n приведенное выше решение 2 я хочу asdads в качестве вывода, может ли кто-нибудь предложить этот запрос для меня.