按类似字符串字段分组

时间:2015-04-14 16:36:17

标签: sql sybase

一个表记录了为我的应用程序中的每种报告类型生成的所有文件。我想确定每个报告的最后一次生成时间。 所有文件都命名为NUMBERS_REPORTNAME-DAY-TIME.xml。

我想根据第一个数字序列和时间戳之间的内容进行分组文件名的查询,这是一个正则表达式。

SQL / Sybase可以实现吗?

FileName                                       GenerationDate

456879_REPORT-ONE-20150409-164652.xml           2015/04/09        
789456_REPORT-TWO-20150409-131534.xml           2015/04/09         
123458_REPORT-TWO-20150510-121055.xml           2015/04/10          
784111_REPORT-THREE-20150510-100652.xml         2015/04/10            

FileName             GenerationDate

REPORT-ONE           2015/04/09                 
REPORT-TWO           2015/04/10          
REPORT-THREE         2015/04/10          

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

SELECT REGEXP_SUBSTR( FileName , '((REPORT-)([a-zA-Z]*))' ) AS ReportName , 
       GenerationDate FROM x GROUP BY ReportName;

无论ReportName将获得多长时间,这都应该有效。 //仅在Sybase中