2012-09-06 89 views
1

charcters我有这样仅提取从字符串

lut00006300.txt 
sand2a0000300.raw 

我需要从上面给出的列值仅提取字符数据的列的值。我尝试了下面的查询,并能够得到前三个字符。

select filesize, 
substring(Filename FROM 1 FOR 3) AS Instrument from Collection; 

是否有任何的方法来提取只留下扩展

的从列值字符的结果应该是:

LUT 
SAND2A 
+2

“* only characters *”是什么意思? ''''''''','''''''''''''''''''''''''' ','r'和'w'都是角色! – eggyal

+0

我认为*只有字母字符*。 – hims056

+0

@ hims056:所以结果应该是'luttxt'和'sandaraw'?对我来说似乎很奇怪。 – eggyal

回答

0

我想下面的查询将帮助你。

select filesize,Filename from Collection where Filename REGEXP '[:alpha]'; 

参见: - http://dev.mysql.com/doc/refman/5.1/en/regexp.html

+0

thnks很多,但是当我激发上面给出的查询我得到了输出为1 – user1633295

+0

@ user1633295看这个链接将帮助你http://stackoverflow.com/questions/1007697/how-to-strip-all-non-alphabetic-characters-from-string-in-sql-server –

0
SELECT 
filesize, 
UPPER(SUBSTRING_INDEX(SUBSTRING_INDEX(Filename, '.', 1), '0', 1)) AS Instrument 
FROM Collection; 

这是一个解决方案,因为你想在SAND2A2

阅读更多关于功能here