使用 SQL 获取文件的扩展名?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13508378/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 12:15:36  来源:igfitidea点击:

Get extension of a file using SQL?

sqlsql-serversql-server-2005

提问by user960567

Possible Duplicate:
Get substring in SQL Server

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

Let's say I have MyImage.pngor MyDoc.doc, etc in a column in a database table.

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

How can I only get the file extension?

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

回答by Joe G Joseph

try this:

尝试这个:

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

SQL fiddle demo

SQL小提琴演示

回答by praveen

Try this :

尝试这个 :

select parsename(filename,1) from yourTable

sqlfiddle demo

sqlfiddle 演示

回答by Tim Schmelter

With string functions:

使用字符串函数:

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

SQL fiddle demo

SQL小提琴演示

回答by AnandPhadke

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

FIDDLE DEMO

小提琴演示

回答by CloudyMarble

  SELECT RIGHT('myFile.txt', 
               CHARINDEX('.', REVERSE('myFile.txt'))-1) AS 'File Extension'

Documentation: SUBSTRING, RIGHT, CHARINDEX, REVERSE

文档:SUBSTRINGRIGHTCHARINDEXREVERSE