22

重複の可能性:
SQL Server で部分文字列を取得する

データベーステーブルの列にMyImage.pngorなどがあるとしましょう。MyDoc.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 に答える