22

可能重复:
在 SQL Server 中获取子字符串

假设我在数据库表的列中有MyImage.pngorMyDoc.doc等​​。

我怎样才能只获得文件扩展名?

4

5 回答 5

46

试试这个:

declare @str varchar(20)='MyDoc.doc';
select reverse(left(reverse(@str),charindex('.',reverse(@str))-1))

SQL小提琴演示

于 2012-11-22T08:18:34.037 回答
12

试试这个 :

select parsename(filename,1) from yourTable

sqlfiddle 演示

于 2012-11-22T08:27:41.547 回答
5

使用字符串函数:

SELECT Extension =
   Right([Name],
        CHARINDEX('.',
                  REVERSE([Name]))-1)
FROM dbo.Files

SQL小提琴演示

于 2012-11-22T08:28:53.430 回答
3
declare @str varchar(20)='MyDoc.doc'
select reverse(left(reverse(@str),CHARINDEX('.',reverse(@str))-1))

小提琴演示

于 2012-11-22T08:19:07.937 回答
3
  SELECT RIGHT('myFile.txt', 
               CHARINDEX('.', REVERSE('myFile.txt'))-1) AS 'File Extension'

文档:SUBSTRINGRIGHTCHARINDEXREVERSE

于 2012-11-22T08:23:21.700 回答