SQL-запрос для удаления левого и правого символов в поле

0

У меня есть поле sql, которое нужно отредактировать символы слева и справа.
Имя таблицы: cdr
Имя поля: dstchannel
Поле dstchannel показывает следующие данные: Local/872 @from-internal-6acb, 1
Я просто нуждаюсь в 872 как вывод
Поле всегда имеет одинаковое количество данных, поэтому 872 будет иметь постоянное положение. Как я могу написать sql-запрос для mysql?

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

Спасибо

  • 0
    Будет ли значение, которое вы хотите получить, всегда иметь длину три символа?
  • 0
    да, значение всегда будет длиной три символа
Теги:

2 ответа

1
Лучший ответ

Предполагая, что число всегда равно 3 символам:

SELECT
  SUBSTRING(dstchannel, 7, 3) AS x
FROM cdr

Если длина числа является переменной, вам нужно искать "@". В T-SQL (SQL Server) вы можете использовать CHARINDEX:

SELECT
  SUBSTRING(dstchannel, 7, CHARINDEX('@', dstchannel, 7) - 7) AS x
FROM cdr
  • 0
    теперь, как я могу добавить SELECT SUBSTRING (dstchannel, 7, 3) AS x FROM cdr
  • 0
    Для этого запроса выберите поле cdr.userfield, campaignlist.campaignnumber, campaignlist.campaignname, employeeelist.employeeid, employeeelist.employeename, cdr.disposition, cdr.calldate, cdr.duration, cdr.uniqueid, cdr.accountcode, x Из списка кампании Inner Join cdr На cdr.userfield = campaignlist.campaignnumber Внутреннее присоединение к сотруднику. На сотруднике.employeeid = x Где cdr.disposition = «ОТВЕТ» И cdr.dst = 8010
Показать ещё 1 комментарий
0

Если разделители всегда '/' и '@':

select substring(dstchannel, 
  locate('/', dstchannel) + 1, 
  locate('@', dstchannel) - locate('/', dstchannel) - 1);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню