2014-02-27 24 views
0

事件我有一個查詢返回值的列:SQL:如何指望基於文件擴展名

?????? ?? ?????? ??????? ?.?..xlsx 
1028-13055 Single Patient Focus Wave 3.sav 
2.xlsx 
2011 BBQ (13Dec2013).sav 
2014 Health IT Purchasing Intentions Survey Results.xlsx 
2014 Safety Training and Safety Professionals Survey.sav 

如何計算出現的次數根據文件擴展名?在上面的例子中,我們有三行xlsx擴展名和兩個sav擴展名?

+0

這將幫助你只有定界符不是空間,而是點:http://stackoverflow.com/questions/5123585/how-to-split-a-single-column-values-to-multiple -column-values – Ziouas

+1

您使用的是什麼RDBMS(MySQL,Oracle,...)? – valex

+0

@ABCD通常STRING函數依賴於它。 – valex

回答

1

試試這個

SELECT extension, 
     Count(*) AS ExtensionCount 
FROM (SELECT RIGHT(name, Charindex('.', Reverse(name)) - 1) AS Extension 
     FROM files) t 
GROUP BY extension 

SQL小提琴

http://sqlfiddle.com/#!6/27269/5

2

試試這個:

SELECT RIGHT(yourcolumnname,CHARINDEX('.', Reverse(yourcolumnname)) -1) 
FROM yourtable 

只是延伸部分分離和再算上出現

2

請嘗試:

SELECT colcnt, 
     Count(*) TotCnt 
FROM (SELECT RIGHT(col, Charindex('.', Reverse(col)) - 1) ColCnt 
     FROM yourtable)x 
GROUP BY colcnt