2013-08-27 4 views
3

Я пытаюсь вернуть подстроку из следующих, это разделенный запятыми [только одна запятая]подстроку с разделителем в SQL

City-City-City, State-State-State 

Иногда это только один город и государство, иногда это больше, чем один из любой [или оба]

В принципе, мне нужно просто вернуть начальные буквы состояния через запятую. Каков наилучший способ сделать это? Я ищу функцию подстроки, но это не кажется таким умным. Я нашел функцию разделения, но она выглядит как излишняя, и я не люблю использовать код, который я не понимаю.

Ex:

Cincinnati-Middletown, OH-KY-IN 
Cleveland-Elyria-Mentor, OH 
Abilene, TX 

Выход:

OH-KY-IN 
OH 
TX 

Спасибо за ответы, я просто понял это благодаря отправной точке Сон в. Вот что я получил. Не заглядывали в нее, но, похоже, возвращали нужные вещи.

select substring(CBSAName,charindex(',',CBSAName)+1, LEN(CBSAName)) FROM CBSAMasterList

+1

Можете ли вы показать нам ожидаемые результаты из набора данных? – Gidil

+0

Спасибо за редактирование bluefeet. Забыл обернуть это так. –

ответ

4
select substring('Abilene, TX',charindex(',','Abilene, TX')+2,2) 
+0

Эй, сонам! Спасибо, что помогли мне снова. С charindex (',', ',' Abilene, TX '), как мне ... искать и выполнять манипуляции на всей моей таблице из 5000+ вещей. На данный момент я возвращаюсь обратно. Можно ли поставить инструкции SELECT в charindex или подстроку? –

+0

Какое значение вы точно ищете? – Sonam

+0

Что-нибудь после запятой в основном. Я делаю запрос на 6000 записей и забочусь только о состоянии, в котором они находятся, что я знаю после любой запятой. –

0

Описание

MySQL SUBSTRING_INDEX() возвращает подстроку из заданной строки до заданного количества вхождений разделителя.

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

Если указанное число больше числа вхождения разделителя, возвращаемая подстрока будет общей строкой. Если заданное число равно 0, из данной строки ничего не будет получено. Синтаксис

SUBSTRING_INDEX(str, delim, count) 

Довод

**Name Description 
str  A string. 
delim A delimiter. 
count An integer indicating the number of occurrences of delim.** 
Example : MySQL SUBSTRING_INDEX() function 

Следующая инструкция MySQL возвращает подстроку формируют слева от последнего разделителя т.е. второй разделитель (.) Из заданной строки «www.mytestpage.info» , Подсчет начинается слева от строки.

SELECT SUBSTRING_INDEX('www.mytestpage.info','.',2); 

enter image description here

+0

Упрощенный для большой информации, к сожалению, я использую MS SQL Server. Извините, я не указал его ни в чем, кроме тега. Все еще очень полезно, когда я использую MySQL в школе! –

Смежные вопросы