我有一个sql字段,我需要编辑左侧和右侧的字符。
表名是:CDR
字段名是:dstchannel
的dstchannel字段显示下列数据:本地/ 872 @从内部-6acb,1
我只需要872作为输出
的字段总是具有相同数量的数据,所以872将在其位置上受到约束。
我将如何去为MySQL编写一个SQL查询?SQL查询删除字段中的左侧和右侧字符
如果我有另一个查询,我想包括这个,我该怎么做?
谢谢
我有一个sql字段,我需要编辑左侧和右侧的字符。
表名是:CDR
字段名是:dstchannel
的dstchannel字段显示下列数据:本地/ 872 @从内部-6acb,1
我只需要872作为输出
的字段总是具有相同数量的数据,所以872将在其位置上受到约束。
我将如何去为MySQL编写一个SQL查询?SQL查询删除字段中的左侧和右侧字符
如果我有另一个查询,我想包括这个,我该怎么做?
谢谢
假设数总是在长度为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
现在如何添加SELECT SUBSTRING(dstchannel,7,3)AS x从cdr – 2010-09-20 05:35:36
到此查询选择cdr.userfield,campaignlist.campaignnumber,campaignlist.campaignname,employeelist.employeeid ,employeelist.employeename,cdr.disposition,cdr.calldate,cdr.duration,cdr.uniqueid,cdr.accountcode,x从campaignlist内部加入cdr在cdr.userfield = campaignlist.campaignnumber内部加入employeelist在employeelist.employeeid = x其中cdr .disposition ='ANSWERED'and cdr.dst = 8010 – 2010-09-20 05:36:56
只需在SUBSTRING(dstchannel,7,3)AS x中替换查询中的x – 2010-09-20 08:09:28
如果分隔符总是 '/' 和 '@':
select substring(dstchannel,
locate('/', dstchannel) + 1,
locate('@', dstchannel) - locate('/', dstchannel) - 1);
将要始终检索值是三个长字符? – 2010-09-20 04:59:25
是的,该值将始终是三个字符长 – 2010-09-20 05:28:42