2010-09-20 361 views
0

我有一個sql字段,我需要編輯左側和右側的字符。
表名是:CDR
字段名是:dstchannel
的dstchannel字段顯示下列數據:本地/ 872 @從內部-6acb,1
我只需要872作爲輸出
的字段總是具有相同數量的數據,所以872將在其位置上受到約束。
我將如何去爲MySQL編寫一個SQL查詢?SQL查詢刪除字段中的左側和右側字符

如果我有另一個查詢,我想包括這個,我該怎麼做?

謝謝

+0

將要始終檢索值是三個長字符? – 2010-09-20 04:59:25

+0

是的,該值將始終是三個字符長 – 2010-09-20 05:28:42

回答

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從cdr – 2010-09-20 05:35:36

+0

到此查詢選擇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

+0

只需在SUBSTRING(dstchannel,7,3)AS x中替換查詢中的x – 2010-09-20 08:09:28

0

如果分隔符總是 '/' 和 '@':

select substring(dstchannel, 
    locate('/', dstchannel) + 1, 
    locate('@', dstchannel) - locate('/', dstchannel) - 1); 
相關問題