Получить расширение файла с помощью SQL?

Возможный дубликат:
Получить подстроку в SQL Server

Допустим, у меня есть MyImage.png или же MyDoc.docи т. д. в столбце таблицы базы данных.

Как я могу получить только расширение файла?

5 ответов

Решение

Попробуй это:

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

Демонстрация SQL скрипки

Попробуй это:

select parsename(filename,1) from yourTable

sqlfiddle demo

С помощью строковых функций:

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

Демонстрация SQL скрипки

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

Документация: SUBSTRING, RIGHT, CHARINDEX, REVERSE

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

FIDDLE DEMO

Другие вопросы по тегам